8
我有一個整數(電流)的列表,我要檢查這個列表中是否包含從預期列表甚至沒有一個元素從列表notExpected所有元素,所以代碼如下所示:濫用
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匹配器嗎? Btw。
for (Integer i : notExpected)
assertThat(current, not(hasItem(i)));
給了我正確的答案,但我認爲我只是可以輕鬆地使用hamcrest匹配器。我使用JUnit 4.11和1.3 hamcrest