在AssertJ中,ignoringFields
方法用于忽略指定的字段,但是不会忽略所有提供的字段。如果你想要忽略所有提供的字段,可以使用ignoringAllOverriddenEquals
方法。
下面是一个示例代码,演示了如何使用ignoringFields
方法忽略指定的字段,并使用ignoringAllOverriddenEquals
方法忽略所有提供的字段:
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
class Person {
private String name;
private int age;
// constructor, getters, setters...
}
class PersonTest {
@Test
void testIgnoringFields() {
Person actual = new Person("John", 25);
Person expected = new Person("John", 30);
Assertions.assertThat(actual)
.usingRecursiveComparison()
.ignoringFields("age") // 忽略age字段
.isEqualTo(expected);
}
@Test
void testIgnoringAllOverriddenEquals() {
Person actual = new Person("John", 25);
Person expected = new Person("Jane", 25);
Assertions.assertThat(actual)
.usingRecursiveComparison()
.ignoringAllOverriddenEquals() // 忽略所有提供的字段
.isEqualTo(expected);
}
}
在第一个测试中,我们使用ignoringFields
方法来忽略age
字段,因此断言会忽略这个字段的差异,并判断其他字段是否相等。
在第二个测试中,我们使用ignoringAllOverriddenEquals
方法来忽略所有提供的字段,这意味着所有字段都会被忽略,并且只比较对象的引用。如果你想要比较所有字段,可以将这个方法从断言链中移除。
希望这个示例能帮助到你,如果有任何疑问,请随时追问。