在单元测试中验证Set值的最佳方法是什么?

时间:2010-06-19 04:05:34

标签: java unit-testing set hashset

好的,我经常会有一个返回某种Set的方法。单元测试这种方法的问题在于,无法保证对集合的迭代将始终以相同的顺序返回项目。

有没有人有任何优选的方法来验证Set?

彼得

2 个答案:

答案 0 :(得分:2)

只需将您的预期值放入Set中,然后在预期和实际集上使用assertEquals。这有点魅力,例如。

Set<String> expected = new HashSet<String>(Arrays.asList("expected", "items"));
...
Set<String> actual = ...;
Assert.assertEquals(expected, actual);

答案 1 :(得分:0)

两组相等,意味着它们包含相同的项目,如果它们都包含彼此

Assert.assertTrue(s1.containsAll(s2) && s2.containsAll(s1))

还有SetUtils.isEqualSet