当前位置: 首页 > 面试题库 >

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

端木弘方
2023-03-14
问题内容

AssertJisEqualToIgnoringGivenFieldsisEqualToComparingFieldByFieldRecursively

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

如何仍然获得我的断言的返回值进行递归比较,但忽略了某些字段。是否可以在任何其他库中使用,或者我可以通过某种方式使用它AssertJ


问题答案:

我无法让它忽略某些字段,但通过为要忽略的字段引入比较器并始终将它们评估为true设法设法解决了该问题。这不是流利的,而是完成工作的临时解决方案。

assertThat(object).usingComparatorForFields((x,y)->0,"field1","field2").isEqualToComparingFieldByFieldRecursively(expectedObject);

截至2017 年4月13日,它存在一个问题。当比较器尝试比较的字段为空时,该功能将不起作用。null如果两个对象都不是,则这是一个问题null



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

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

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

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

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