2016-07-05 84 views
1

我遇到問題。在我的JUnit測試中,我想測試通過休眠完成的數據庫中的插入。我得到了一個實體,它包含一個Setlist,我想查看插入的列表是否與我設置的列表相同。Hibernate將PersistentSet與HashSet進行比較

assertEquals(listDerogationLinux, derogation.getListDerogationLinux()); 

的問題是,使用休眠PersistentSet和我使用HashMap的,所以當我嘗試對它們進行比較,我得到一個AassertionError:

java.lang.AssertionError: expected: java.util.HashSet<[...]> but was: org.hibernate.collection.internal.PersistentSet<[...]> 

我已經試過了很多東西,但唯一的事情,工作是做一個新的hashSet與PersistentSet,但它確實很難看...

assertTrue(new HashSet<DerogationLinux>(derogation.getListDerogationLinux()).equals(listDerogationLinux)); 

有沒有更好的方法?

回答

1

嘗試在PersistentSet而不是HashSet上調用equals。它應該工作。

persistentSet.equals(hashSet)

+0

Thx man!它的工作:) – Antoine

+0

完全適合我的另一種方式...這很奇怪。 –