在JUnit5的AssertJ依赖包中,存在一个名为 assertThat 的方法,它可以用于比较两个对象是否相等。可以使用该方法的 usingRecursiveComparison 子方法将所有字段进行递归比较,即可实现类似于 isEqualToComparingFieldByFieldRecursively 的功能。具体代码如下:
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
class MyClass {
private String name;
private int age;
public MyClass(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
class MyTest {
@Test
void testMyClass() {
MyClass mc1 = new MyClass("Tom", 18);
MyClass mc2 = new MyClass("Tom", 18);
Assertions.assertThat(mc1).usingRecursiveComparison().isEqualTo(mc2);
}
}
在上面的代码示例中,我们定义了一个 MyClass 类,并在 MyTest 测试类中比较了两个对象 mc1 和 mc2 是否相等。通过 usingRecursiveComparison 方法将所有字段进行递归比较,可以实现类似于 isEqualToComparingFieldByFieldRecursively 的功能。