2010-06-19 84 views

回答

2

只要把你的预期值在一组,并然后在预期的和实际的集合上使用assertEquals。这很有魅力,例如

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

嘿,是的。我不知道你可以这样做。从Java 6 AbstractSet javadocs: – Risser 2010-06-19 04:32:01

+0

将指定的对象与此集合相比较。如果给定对象也是一个集合,则返回true,这两个集合具有相同的大小,并且给定集合中的每个成员都包含在此集合中。这确保了equals方法在Set接口的不同实现中正常工作。 这个实现首先检查指定的对象是否是这个集合;如果是的话,它返回true。然后,它检查指定的对象是否与其集合的大小相同;如果不是,则返回false。如果是这样,它返回containsAll((Collection)o)。 – Risser 2010-06-19 04:33:43

+0

containsAll uses包含,并包含使用.equals方法。对于一组简单的pojos,或者任何具有很好的.equals方法的东西,这非常漂亮。谢谢! – Risser 2010-06-19 04:36:25

0

两套都是平等的,这意味着它们含有相同的项目,如果它们都包含彼此

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

还有SetUtils.isEqualSet