私は自分のテストで festAssertions を使用していますが、使用すると、休止状態のオブジェクトがテストされるテストassertThat(object).isEqualTo(otherObject)
とは異なる結果が得られることに気付きました。assertThat(object.equals(otherObject)).isTrue();
回避策を講じる必要がありましたが、テストは本当に見苦しく見えますが、うまく
assertThat(collection).contains(object1, object2)
いかないため使用できません!
これが部分的なコードです (最後の行を見てください): seasonRate、seasonRate1 が作成され、永続化されます。次に、データベースから取得し、オリジナルと照合します。派手なことは何もありませんが、festAssertions では機能しません。
それを修正する方法と、それが私の側のエラーであるかどうかについて何か考えはありますか?
(...)
session.save(seasonRate);
session.save(seasonRate2);
session.getTransaction().commit();
session.close();
session = sessionFactory.getCurrentSession();
session.beginTransaction();
RateRepositoryHibernate rateRepositoryHibernate= new RateRepositoryHibernate(new StubHibernateSessionFactory(sessionFactory));
// when
final Collection<Rate> allRatesForRoom = rateRepositoryHibernate.getAllRatesForRoom(room);
// then
assertThat(allRatesForRoom.size()).isEqualTo(EXPECTED_RATES);
for(Rate rate : allRatesForRoom)
{
if(rate.getRateName().equals("season name 2"))
{
assertThat(rate.equals(seasonRate2)).isTrue();
}
if(rate.getRateName().equals("season name"))
{
assertThat(rate.equals(seasonRate)).isTrue();
}
}
//assertThat(allRatesForRoom).contains(seasonRate, seasonRate2); // this does not work somehow