我想测试返回一组元素的java方法的结果,我需要检查结果是否包含所有元素,但不一定是相同的顺序。
我正在使用junit assertThat
进行测试,但我不知道要使用的匹配器。
基本上我正在寻找像JUnitMatchers.hasItem(T ... elements)
这样的东西,如果方法返回的元素中至少有一个不在元素中,那么就会失败。并且由于我的方法返回一个集合,如果elements
包含两倍相同的元素,匹配器就会失败。
有谁知道这样的匹配器?
答案 0 :(得分:2)
您可以使用Hamcrest 1.2.1。它有一个IsIterableContainingInAnyOrder匹配器,完全符合您的需求。
答案 1 :(得分:0)
尝试对方法返回的集合进行排序。您可能需要将其转换为List
。然后使用标准equals
检查它是否与已排序的预期集合相同。