如何在junit 5中比较包含另一个列表的列表?

问题描述

我有以下三个班级:

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中进行比较?

解决方法

首先,您的FooBar应该有一些共同点,作为比较的基础,通过它可以进行比较。

如果它们没有任何共同点,我看不出有什么方法可以比较无与伦比的对象。

只要您的FooBar有共同点,或者至少它们重写.equals()并实现自己的变量即可进行比较(可以相互比较)两种类型),则可以使用:

assertIterableEquals(expected,actual); //from org.junit.jupiter.api.Assertions

此方法断言两个可迭代对象是否完全相等。

请注意,如果 expected actual 均为空,则将它们视为相等。