我有一个整数列表(当前),我想检查此列表是否包含预期列表中的所有元素,甚至不包含列表 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 匹配器?顺便提一句。
for (Integer i : notExpected)
assertThat(current, not(hasItem(i)));
给了我正确的答案,但我认为我可以轻松地使用 hamcrest 匹配器。我正在使用 junit 4.11 和 hamcrest 1.3