AssertJ
具有isEqualToIgnoringGivenFields
和isEqualToComparingFieldByFieldRecursively
。
但是,我无法通过忽略某些字段来递归比较两个对象。根据this的讨论,它必须处于开发中。
如何仍然获得我的断言的返回值进行递归比较,但忽略了某些字段。是否可以在其他任何库中使用AssertJ
来完成?
最佳答案
通过AssertJ 3.12.0版的最新“递归比较api改进”
现在可以进行递归比较并忽略字段:
Assertions.assertThat(objActual)
.usingRecursiveComparison()
.ignoringFields("uniqueId", "otherId")
.ignoringFieldsMatchingRegexes(".*someId")
.ignoringOverriddenEqualsForTypes(MyData.class, MyDataItem.class)
.isEqualTo(objExpected);