Integers (current) のリストがあり、このリストにリスト expected のすべての要素が含まれており、リスト notExpected の要素が 1 つも含まれていないかどうかを確認したいので、コードは次のようになります。
List<Integer> expected= new ArrayList<Integer>();
expected.add(1);
expected.add(2);
List<Integer> notExpected = new ArrayList<Integer>();
notExpected.add(3);
notExpected.add(4);
List<Integer> current = new ArrayList<Integer>();
current.add(1);
current.add(2);
assertThat(current, not(hasItems(notExpected.toArray(new Integer[expected.size()]))));
assertThat(current, (hasItems(expected.toArray(new Integer[expected.size()]))));
とても良い。しかし、追加すると
current.add(3);
テストも緑色です。hamcrest マッチャーを誤用していませんか? ところで。
for (Integer i : notExpected)
assertThat(current, not(hasItem(i)));
正しい答えが得られますが、ハムクレストマッチャーを簡単に使用できると思いました。私はjunit 4.11とhamcrest 1.3を使用しています