2010-06-19 90 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

相關問題