すべての CRUD メソッドが正しく機能していることを確認するために、いくつかのテストを書いています。それらはすべて正常に機能していますが、remove メソッドをテストするのは少し難しいようです。
私のテストでは、私はこれをやっています:
// remove
a = dao.select(1); // previously inserted in the DB
dao.remove(a);
assertNull(dao.select(a.getId()));
そしてDAOクラス(選択と削除のみ):
@Override
public AtividadeComercial select(int id) {
return em.getReference(AtividadeComercial.class, id);
}
@Override
public void remove(AtividadeComercial e) {
EntityTransaction t = em.getTransaction();
boolean active = t.isActive();
if(!active)
t.begin();
em.remove(em.getReference(e.getClass(), e.getId()));
if(!active)
t.commit();
}
しかし、テストは常にjavax.persistence.EntityNotFoundException
の後にを投げていremove
ます。これは正常な動作ですか、それとも何か本当に問題がありますか? これが明らかなように思われる場合は申し訳ありませんが、それに対する答えが見つかりませんでした。