java - 如何使用 Hamcrest 验证 map 大小

标签 java junit hamcrest

Map<Integer, Map<String, String>> mapMap = new HashMap<Integer,Map<String, String>>();

目前这样断言

assertThat(mapMap.size(), is(equalTo(1)));
Or
assertThat(mapMap.values(), hasSize(1));

有没有其他方法,例如与列表一起使用的方法。

assertThat(someListReferenceVariable, hasSize(1));

最佳答案

好消息

在当前 master branch of the JavaHamcrest project 中有一个匹配器可以完全满足您的需求。 . 你可以这样调用它:

assertThat(mapMap, aMapWithSize(1));

还有坏消息

很遗憾,这个匹配器不在最新版本的 Hamcrest (1.3) 中。

[更新] 最后是好消息

aforementioned matcher is included在新发布的 2.1 版本中。

关于java - 如何使用 Hamcrest 验证 map 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36030650/

相关文章:

java - 单元测试中的初始化

JUnit - java.lang.NoClassDefFoundError : org/hamcrest/SelfDescribing

rest-assured - 为什么 Hamcrest 的 containsInAnyOrder 匹配器接受数组而不是列表?

java - 如何让 contains(List<Matcher> itemMatchers) 在 Java 7 中编译?

java - .Net 委托(delegate)相对于 Java 匿名类的真正优势是什么?

java - 如何使用java代码在新行中写入文件

java - 在单元测试中为 Hibernate 创建 JNDI 上下文

java - 仅在订单状态更改时执行该功能

java - Hadoop Map Reduce - 如何将分组与排序分开?

java - 没有 Runnable 方法和 Test 类应该只有一个公共(public)零参数构造函数