java - 单元测试断言 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"

此错误与上面的行有关。

我该如何解决这个问题/有更好的方法来测试这个问题吗?

最佳答案

如果您使用 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 匹配器检查给定集合是否具有相同的长度并且包含相同顺序的给定项目。

关于java - 单元测试断言 TreeMap 中的对象顺序正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39077589/

相关文章:

java - debug jdk源无法查看变量它是什么

c# - 如何使陷入无限循环的测试失败?

c# - 具有多个输入的单元测试

unit-testing - 在其自己的 JVM 中与每个测试类并行收集并运行所有 junit 测试(按类并行化,而不是按方法并行化)

java - 从 php 执行 java 类

java - 在可执行 JAR 中引用 log4j 配置文件

java - 字符串格式不正确

python - 如何使用 Python 'unittest' 模块构建我的测试?

Android单元测试没有被 mock

java - 对象列表上的 JUnit Mockito ReflectionEquals