问题描述
我有以下三个班级:
width
public class Foo {
private Long fooId;
private String fooName;
private List<Bar> bars;
}
public class Bar {
private Long barId;
private String barName;
private Foo foo;
}
public class FooBar {
List<Foo> foo;
List<Bar> bars;
}
是我得到的答复。对于如何进行比较,我有点困惑,尤其是使用FooBar
中的Foo
进行hasItem()
还是有更好的方法。我们如何在junit5中进行比较?
解决方法
首先,您的Foo
和Bar
应该有一些共同点,作为比较的基础,通过它可以进行比较。
如果它们没有任何共同点,我看不出有什么方法可以比较无与伦比的对象。
只要您的Foo
和Bar
有共同点,或者至少它们重写.equals()
并实现自己的变量即可进行比较(可以相互比较)两种类型),则可以使用:
assertIterableEquals(expected,actual); //from org.junit.jupiter.api.Assertions
此方法断言两个可迭代对象是否完全相等。
请注意,如果 expected 和 actual 均为空,则将它们视为相等。