【问题标题】:JUnit5 Assert List of similar Object are equalJUnit5 Assert List of similar Object are equal
【发布时间】:2021-01-25 01:00:16
【问题描述】:

我需要测试将对象列表映射到另一个对象列表的方法层,例如从我们无法控制的对象列表转换为我们可以控制的对象列表。由于对象的类型不同,我无法使用 equals() 进行比较,但我需要测试列表和对象值是否正确映射。

我目前的实现是:

    public void test {
        // GIVEN
        List<T1> l1 = api.getData();
    
        // WHEN
        List<T2> l2 = getList();
    
        // THEN
        assertEquals(l1.size(), l1.size());

        for(int i = 0; i < l1.size(); i++) {
            assertEquals(l1.get(i).getVal1(), l2.get(i).getVal1());
            assertEquals(l1.get(i).getVal2(), l2.get(i).getVal2());
            assertEquals(l1.get(i).getVal3(), l2.get(i).getVal3());
            ...
            
        }

    
    }

我是单元测试的新手。有没有更好的方法来构建这个测试?

【问题讨论】:

    标签: java junit5


    【解决方案1】:

    你可以像这样使用 assertj 库:

    import static org.assertj.core.api.Assertions.assertThat;
    ...
    assertThat(l2).usingElementComparatorOnFields("val1", "va2", "val3").containsExactlyElementsOf(l1);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-27
      • 2015-12-28
      • 1970-01-01
      • 2012-05-14
      • 2012-03-25
      • 2023-01-03
      相关资源
      最近更新 更多