如何使用assertJ递归地比较列表而忽略给定的字段?

orr*_*ymr 5 java unit-testing assertj

首先,这不是这个问题的重复。在那里,它被专门询问一个对象。我想为一个容器做这个,特别是一个列表。

所以,我知道我可以在使用时忽略一个字段 usingElementComparatorIgnoringFields() 但这不会进行递归比较。

我知道我可以使用usingRecursiveFieldByFieldElementComparator(). 但这不允许我排除给定的字段。

如何递归比较,忽略字段?

Ven*_*kov 10

从 AssertJ Core 3.20.0 开始,您可以使用usingRecursiveFieldByFieldElementComparatorIgnoringFields(String... fields)方法:

assertThat(actualList)
        .usingRecursiveFieldByFieldElementComparatorIgnoringFields("field1", "field2")
        .isEqualTo(expectedList);
Run Code Online (Sandbox Code Playgroud)


Joe*_*ola 5

这将出现在下一个 AssertJ Core 版本中:https://github.com/joel-costigliola/assertj-core/issues/1002