我有问题。在我的JUnit测试中,我想测试hibernate完成的db中的插入。我有一个实体,它有一个Setlist,我想看看插入的列表是否等于我设置的列表。
assertEquals(listDerogationLinux, derogation.getListDerogationLinux());
问题是hibernate使用PersistentSet而我使用HashMap所以当我尝试比较它时我得到了一个AassertionError:
java.lang.AssertionError: expected: java.util.HashSet<[...]> but was: org.hibernate.collection.internal.PersistentSet<[...]>
我已经尝试了很多东西,但唯一有用的是使用PersistentSet创建一个新的hashSet,但它确实很难看......
assertTrue(new HashSet<DerogationLinux>(derogation.getListDerogationLinux()).equals(listDerogationLinux));
有更好的方法吗?
答案 0 :(得分:2)
尝试在PersistentSet而不是HashSet上调用equals。它应该工作。
persistentSet.equals(hashSet)