我正在寫一個簡單的測試,它檢查返回Collection
下面的一些接口的方法。我試圖儘可能多地提取此集合的內部表示,以便在兩種情況下都能通過此測試:方法返回List
和Set
。測試集合與訂購相等
Set
應該訂購(LinkedHashSet
或LinkedHashMap
支持Set
),所以我也必須測試訂單。所以一般我想編寫測試是這樣的:
assertThat(returnedList, containsOrdered('t1", "t2", "t3"));
當且僅當兩個集合不是「同一」(即同在相同的排序值),這將失敗。
我發現Hamcrest圖書館在這種情況下是有用的,但我被困在它的文檔。任何幫助將不勝感激,但我會盡量避免寫作CollectionTestUtil或我自己的Hamcrest Matcher
如果可能的話。
你能提供完整的包和類路徑到這個包含方法嗎?你是否使用JUnit或Hamcrest的assertThat?它有什麼區別嗎? – 2012-04-07 19:29:47
我有錯誤版本的hamcrest圖書館,因爲我拉着hamcrest-所有的依賴。我固定它,與junit重疊的麻煩一起(有沒有提供hamcrest的junit-dep神器,所以有可能添加完整的hamcrest支持)。謝謝你的幫助 – 2012-04-10 08:58:08