2016-08-22 33 views
0

我想寫一個Junit測試來斷言我的TreeMap中的對象是的正確順序單元測試聲明TreeMap中的對象的順序是正確的?

我該怎麼做?

我努力做到以下幾點:

assertEquals(treeMapFromMethod.get(0), ValueThatShouldBeFirstEntryInTreeMap); 

但我得到錯誤

"java.lang.ClassCastException: java.lang.Integer cannot be cast to MyObJect" 

此錯誤與上面的線。

我該如何解決這個問題/是否有更好的方法來測試?

+0

TreeMap類型爲TreeMap ?在我看來,Java不能將0投射到MyObject。 – Florian

+0

你需要迭代地圖(值),沒有基於'get()'的索引。 – Kayaman

+0

好的謝謝我試着迭代值 – java123999

回答

1

如果使用Hamcrest您可以用contains匹配很容易做到這一點:

TreeMap<String, Integer> map = new TreeMap<>(); 
map.put("one", 1); 
map.put("two", 2); 
map.put("three", 3); 

Assert.assertThat(map.keySet(), Matchers.contains("one", "three", "two")); 

contains匹配檢查,如果給定的集合具有相同的長度,幷包含以相同的順序給定的項目。

相關問題