【问题标题】:Verify map with custom values使用自定义值验证地图
【发布时间】:2014-05-26 10:41:17
【问题描述】:

我有以下地图:

Map<String, MyCustomObject>

我的目标是使用 hamcrest 匹配器验证此地图的容量。我尝试了以下方法:

assertThat(map, hasEntry("key", (MyCustomObject)hasItem(hasProperty("propertyName", equalTo("value")))));

但看起来hasItem 方法只适用于集合。

是否有其他方法可以验证自定义对象?

new MyCustomObject() 在我的情况下不起作用,因为测试因哈希码相等而失败。还有,我不能修改MyCustomObject class

【问题讨论】:

    标签: java junit hamcrest


    【解决方案1】:

    你可以用这个吗?

    assertThat(map.get("key"), hasProperty("propertyName", equalTo("value")));
    

    【讨论】:

      【解决方案2】:

      如果您想检查是否至少有一个键(任意键)与该值匹配,请使用hasValue

      assertThat(map, hasValue(hasProperty("propertyName", is("value"))));
      

      不同之处在于输出不匹配。还有hasKeyhasEntry 的匹配器。

      【讨论】:

        猜你喜欢
        • 2015-03-28
        • 1970-01-01
        • 2014-01-07
        • 1970-01-01
        • 1970-01-01
        • 2018-03-18
        • 2015-01-01
        • 1970-01-01
        • 2014-04-16
        相关资源
        最近更新 更多