当前位置: 首页 > 知识库问答 >
问题:

如何使用AssertJ递归比较忽略给定字段?

谭京
2023-03-14

AssertJ具有IsequaltoIgnoringGivenFieldsIsequaltoComparingFieldByFieldRecursive

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

共有1个答案

温嘉赐
2023-03-14

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

Assertions.assertThat(objActual)
                .usingRecursiveComparison()
                .ignoringFields("uniqueId", "otherId")
                .ignoringFieldsMatchingRegexes(".*someId")
                .ignoringOverriddenEqualsForTypes(MyData.class, MyDataItem.class)
                .isEqualTo(objExpected);
 类似资料:
  • 问题内容: 有和。 但是,我无法通过忽略某些字段来递归比较两个对象。根据此讨论,它必须处于开发中。 如何仍然获得我的断言的返回值进行递归比较,但忽略了某些字段。是否可以在任何其他库中使用,或者我可以通过某种方式使用它? 问题答案: 我无法让它忽略某些字段,但通过为要忽略的字段引入比较器并始终将它们评估为true设法设法解决了该问题。这不是流利的,而是完成工作的临时解决方案。 截至2017 年4月1

  • 为了单元测试DTO,我想使用AssertJ的递归比较来比较两个对象(DTO和一个实体)- 我尝试过以下配置,但运气不佳: 比较阶级: DTO: 实体: 在这种情况下,如何配置assertJ?

  • 我只是实现了自己的插入排序,并试图验证功能,包括稳定性。 对于给定的未排序元素列表,我试图根据collections#sort(list)方法验证我的代码。 我找到了AbstractiterAbleAssert#ContainsExactlYelementsOf方法。 最后,我将方法跟踪到调用的位置。 方法是否覆盖稳定性? 或者,对于是否应该添加其他方法?

  • 当我执行时,结果显然是。但是我想忽略“nullable”参数,不管它是false还是true,如果结构相同,它应该返回。 有可能吗?

  • 问题内容: 我有这样的XML消息: 我想将被测试方法产生的这种类型的消息与预期的消息进行比较,但我不在乎。因此,我希望以上消息被认为等于: 我正在使用XMLUnit的最新版本。 我在想答案是创建一个习惯。如果有准备好要使用的东西,我只是不想重新发明轮子。 欢迎使用XMLUnit以外的库的建议。 问题答案: 自从回答了这个问题以来,XMLUnit发生了很多变化。 现在,您可以在使用时轻松忽略节​​点