匹配严格列表的所有元素

时间:2012-03-05 22:44:40

标签: java junit pattern-matching

我想测试返回一组元素的java方法的结果,我需要检查结果是否包含所有元素,但不一定是相同的顺序。

我正在使用junit assertThat进行测试,但我不知道要使用的匹配器。

基本上我正在寻找像JUnitMatchers.hasItem(T ... elements)这样的东西,如果方法返回的元素中至少有一个不在元素中,那么就会失败。并且由于我的方法返回一个集合,如果elements包含两倍相同的元素,匹配器就会失败。

有谁知道这样的匹配器?

2 个答案:

答案 0 :(得分:2)

您可以使用Hamcrest 1.2.1。它有一个IsIterableContainingInAnyOrder匹配器,完全符合您的需求。

答案 1 :(得分:0)

尝试对方法返回的集合进行排序。您可能需要将其转换为List。然后使用标准equals检查它是否与已排序的预期集合相同。