2

JUnit の修正中に、次のコード行を見つけました。

Assert.assertNull(lAllEntryById.put(lEntry.getId(), lEntry));

操作を検査するとlAllEntryById.put(lEntry.getId(), lEntry)、結果は常に null ですが、assertNullそれでも失敗します。

コードを次のように変更すると:

 Entry lEntry = lAllEntryById.put(lEntry.getId(), lEntry);
 Assert.assertNull(lEntry);

すべて正常に動作します。

私は少し混乱しています。上記のコード行で 2 つの異なる結果が得られる理由を教えてください。

ありがとう...

4

2 に答える 2

0

http://docs.oracle.com/javase/6/docs/api/java/util/Hashtable.html#put%28K,%20V%29

戻り値: このハッシュテーブル内の指定されたキーの以前の値、またはキーがない場合は null

以前に同じキーでハッシュマップに値を挿入していないことを確認してください。

やってみてください:

Assert.assertFalse(lAllEntryById.contains(lEntry.getId());

あなたの主張の前に。

于 2013-08-09T09:47:50.473 に答える