Java 断言树映射中的对象顺序正确的单元测试?
我正在尝试编写一个Java 断言树映射中的对象顺序正确的单元测试?,java,unit-testing,junit,classcastexception,treemap,Java,Unit Testing,Junit,Classcastexception,Treemap,我正在尝试编写一个Junit测试,以断言我的TreeMap中的对象顺序正确 我怎样才能做到 我正在努力做到以下几点: assertEquals(treeMapFromMethod.get(0), ValueThatShouldBeFirstEntryInTreeMap); 但是我得到了错误: "java.lang.ClassCastException: java.lang.Integer cannot be cast to MyObJect" 此错误与上面的行有关 如何解决此问题/是否有更好
Junit
测试,以断言我的TreeMap
中的对象顺序正确
我怎样才能做到
我正在努力做到以下几点:
assertEquals(treeMapFromMethod.get(0), ValueThatShouldBeFirstEntryInTreeMap);
但是我得到了错误:
"java.lang.ClassCastException: java.lang.Integer cannot be cast to MyObJect"
此错误与上面的行有关
如何解决此问题/是否有更好的方法测试此问题?如果使用Hamcrest,则可以使用
包含的匹配器轻松完成此操作:
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"));
TreeMap map=newtreemap();
地图.放("一",一);;
地图("二",二);;
地图放置(“三”,3);
Assert.assertThat(map.keySet(),Matchers.contains(“一”、“三”、“二”));
contains
matcher检查给定集合是否具有相同的长度并以相同的顺序包含给定项。如果使用Hamcrest,则可以使用contains
matcher轻松完成此操作:
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"));
TreeMap map=newtreemap();
地图.放("一",一);;
地图("二",二);;
地图放置(“三”,3);
Assert.assertThat(map.keySet(),Matchers.contains(“一”、“三”、“二”));
包含
匹配器检查给定集合是否具有相同的长度,是否以相同的顺序包含给定项。树映射是否键入为树映射?在我看来,Java似乎无法将0强制转换为MyObject。您需要迭代映射(值),没有基于索引的get()
。好的,谢谢我尝试迭代值。您还可以从树映射中获取键列表,并将其与预期列表进行比较。您的ClassCastException可能是由于误用泛型造成的。启用所有编译器警告,删除任何@SuppressWarnings
注释,并解决所有警告。树映射是否键入为树映射?在我看来,Java似乎无法将0强制转换为MyObject。您需要迭代映射(值),没有基于索引的get()
。好的,谢谢我尝试迭代值。您还可以从树映射中获取键列表,并将其与预期列表进行比较。您的ClassCastException可能是由于误用泛型造成的。启用所有编译器警告,删除所有@SuppressWarnings
注释,并解决所有警告。