我有以下地图:
Map<String, MyCustomObject>
我的目标是使用 hamcrest matchers 验证此地图的容量。我尝试了以下方法:
assertThat(map, hasEntry("key", (MyCustomObject)hasItem(hasProperty("propertyName", equalTo("value")))));
但看起来hasItem
方法仅适用于集合。
是否有其他方法可以验证自定义对象?
new MyCustomObject()
在我的情况下不起作用,因为测试因hashcode相等而失败。而另一件事是我无法修改MyCustomObject class
。
答案 0 :(得分:3)
assertThat(map.get("key"), hasProperty("propertyName", equalTo("value")));
答案 1 :(得分:2)
如果要检查是否至少有一个键 - 任何键 - 与值匹配,请使用hasValue
:
assertThat(map, hasValue(hasProperty("propertyName", is("value"))));
区别在于不匹配输出。还有hasKey
和hasEntry
的匹配器。