DAO サービスの統合テストを書いています。dao insert メソッドを使用し、データベースからオブジェクトを読み取り、元のオブジェクトですべてのフィールドをアサートすることで、これを実行します。
assertj-core を使用してアサーションを作成したいと考えています。特にisEqualToComparingFieldByField。
しかし、java.util.Date フィールドには問題があります。それらは同一の getTime() 値を返しますが、等しくありません。
現在、isEqualToComparingFieldByField アサーションでこれらのフィールドを無視し、hasSameTimeAs メソッドと比較しています。
assertThat(object).isEqualToIgnoringGivenFields(other, "time");
assertThat(object.getTime()).hasSameTimeAs(other.getTime());
特定のタイプ (この場合は java.util.Date) の isEqualToComparingFieldByField メソッドにカスタム コンパレータを提供する方法、またはこの問題を回避するためにフィールドごとに 2 つのオブジェクトをアサートするその他のソリューションはありますか?