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 楼答案
在这种情况下,我宁愿考虑创建自己的自定义匹配器。
这实际上是一项直截了当的任务;您可以找到一个详细的示例here