【发布时间】:2021-06-05 21:35:59
【问题描述】:
鉴于以下课程...
public class UserAccount {
private Long id;
private String email;
private String activationCode;
private Date createDate;
}
... 我需要使用 AssertJ 将实际对象与预期对象进行比较。但是,id、activationCode 和 createDate 字段具有动态值,我无法将其硬编码到断言中。
所以下面的断言会失败:assertThat(actualUserAccount).isEqualTo(expectedUserAccount);
然后我发现以下内容会忽略某些字段:
assertThat(actualUserAccount)
.usingRecursiveComparison()
.ignoringFields("id", "activationCode", "createDate")
.isEqualTo(expectedUserAccount);
但我真正要寻找的是通过对某些字段进行以下特殊检查来断言对象是否相等:
- 是否存在带有任何
Long值的id? - 是否存在带有任何
String值的activationCode? - 是否存在带有任何
Date值的createDate?
或者除了为每个字段编写一个断言之外别无他法?
【问题讨论】:
标签: assertj