JUnit 4 比较集

2022-08-31 09:29:26

您如何简明扼要地断言元素的相等性,特别是在 JUnit 4 中?CollectionSet


答案 1

您可以断言两个 s 彼此相等,这将调用 equals() 方法SetSet

public class SimpleTest {

    private Set<String> setA;
    private Set<String> setB;

    @Before
    public void setUp() {
        setA = new HashSet<String>();
        setA.add("Testing...");
        setB = new HashSet<String>();
        setB.add("Testing...");
    }

    @Test
    public void testEqualSets() {
        assertEquals( setA, setB );
    }
}

如果两个 s 的大小相同且包含相同的元素,则此值将通过。@TestSet


答案 2

阿帕奇公地再次拯救。

assertTrue(CollectionUtils.isEqualCollection(coll1, coll2));

像吊饰一样工作。我不知道为什么,但我发现对于集合,以下内容并不总是有效。在它失败的情况下,我有两个由Sets支持的集合。Hamcrest和junit都不会说这些收藏品是平等的,即使我确信它们是平等的。使用CollectionUtils,它可以完美地工作。assertEquals(coll1, coll2)


推荐