有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JUnit比较集合中的对象,但包含对象中的指定字段除外

JUnit测试

它需要比较除某些字段外的两个单个元素。我可以使用assertj来实现这一点:

Assertions.assertThat(actual).isEqualToIgnoringGivenFields(except, "id", "innerCollection");

而且效果很好。但这还不够。我还需要比较内部收藏。我知道只有ID在内部集合中是不同的。有可能比较像这样的吗

Assertions.assertThat(to.getInnerCollection()).isEqualToIgnoringGivenFields(from.getInnerCollection()
, {except fields in collection elements});

共 (1) 个答案

  1. # 1 楼答案

    在这种情况下,我宁愿考虑创建自己的自定义匹配器。

    这实际上是一项直截了当的任务;您可以找到一个详细的示例here