我正在为我的DAO服务编写集成测试。我通过使用dao插入方法执行该操作,然后从数据库中读取对象并使用原始对象声明所有字段。在测试中声明java.util.Date字段
我想使用assertj-core来做出断言。特别是isEqualToComparingFieldByField。
但java.util.Date字段存在问题。它们返回相同的getTime()值,但不相等。
目前,我忽略了isEqualToComparingFieldByField断言中的这些字段,然后用hasSameTimeAs方法comapre。
assertThat(object).isEqualToIgnoringGivenFields(other, "time");
assertThat(object.getTime()).hasSameTimeAs(other.getTime());
是任何方式,以提供定制的比较器,以isEqualToComparingFieldByField方法对于给定的类型(在这种情况下java.util.Date)或任何其他溶液通过字段避免此问题断言两个对象场?
直到java 8日期/时间类,考虑基于'getTime()'的'java.util.Date'的平等,以及其他目的(字段)测试日历。在Date中,相应的“field”构造函数已被弃用,并建议使用Calendar。 –