我有两个Collection<Audit>
集合:
Collection<Audit> pendingAudits;
Collection<Audit> olderAudits;
因此,我需要比较pendingAudits
中的所有olderAudits
元素。
为了比较它们,有必要将每个audit.getId().equals(other.getId())
进行比较。
请记住,我无法覆盖Audit.equals
或Audit.hashCode
。这是第三方类。
我想我需要创建一个自定义内联Matcher
。
有什么想法吗?
答案 0 :(得分:1)
如果您想尝试使用assertj,可以从其custom comparison strategy中受益
@Test
void myTest() {
Collection<Audit> pendingAudits = ...
Collection<Audit> olderAudits = ...
Comparator<Audit> byId = Comparator.comparing(Audit::getId);
assertThat(olderAudits).usingElementComparator(byId).containsAll(pendingAudits);
}