AssertJ具有isEqualToIgnoringGivenFieldsisEqualToComparingFieldByFieldRecursively

但是,我无法通过忽略某些字段来递归比较两个对象。根据this的讨论,它必须处于开发中。

如何仍然获得我的断言的返回值进行递归比较,但忽略了某些字段。是否可以在其他任何库中使用AssertJ来完成?

最佳答案

通过AssertJ 3.12.0版的最新“递归比较api改进”
现在可以进行递归比较并忽略字段:

Assertions.assertThat(objActual)
                .usingRecursiveComparison()
                .ignoringFields("uniqueId", "otherId")
                .ignoringFieldsMatchingRegexes(".*someId")
                .ignoringOverriddenEqualsForTypes(MyData.class, MyDataItem.class)
                .isEqualTo(objExpected);

09-05 14:04