我正在爲我的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。 –