Java 当类字段是集合时,使用RecursiveComparison的AssertJ失败 班级人员{ 私人名单电话; } 班级电话{ 私有字符串编号; } assertThat(result).usingRecursiveComparison() .ignoringCollectionOrder() .isEqualTo(预期人员);
Java 当类字段是集合时,使用RecursiveComparison的AssertJ失败 班级人员{ 私人名单电话; } 班级电话{ 私有字符串编号; } assertThat(result).usingRecursiveComparison() .ignoringCollectionOrder() .isEqualTo(预期人员);,java,unit-testing,junit5,assertj,Java,Unit Testing,Junit5,Assertj,expectedPerson具有相同的电话号码和电话号码,但测试失败,因为列表引用不相同。如果我没有记错,使用递归比较只会比较值。那么为什么它会失败呢?不幸的是,它无法重现您的问题 我想可能是版本冲突或其他环境问题。例如,以下代码段按预期工作: class Person { private List<Phone> phones; } class Phone { private String number; } assertThat(result).usingRecursiv
expectedPerson
具有相同的电话号码和电话号码,但测试失败,因为列表引用不相同。如果我没有记错,使用递归比较
只会比较值。那么为什么它会失败呢?不幸的是,它无法重现您的问题
我想可能是版本冲突或其他环境问题。例如,以下代码段按预期工作:
class Person {
private List<Phone> phones;
}
class Phone {
private String number;
}
assertThat(result).usingRecursiveComparison()
.ignoringCollectionOrder()
.isEqualTo(expectedPerson);
不幸的是,我无法重现你的问题 我想可能是版本冲突或其他环境问题。例如,以下代码段按预期工作:
class Person {
private List<Phone> phones;
}
class Phone {
private String number;
}
assertThat(result).usingRecursiveComparison()
.ignoringCollectionOrder()
.isEqualTo(expectedPerson);
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.4.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.4.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.17.2</version>
<scope>test</scope>
</dependency>