【发布时间】:2017-02-18 18:13:09
【问题描述】:
我已将Map 声明如下:
Map<String, Object> data
我在里面放了一个String 并像这样验证它的值:
assertEquals("value", data.get("key"));
现在,我想重写验证以使用 assertThat 而不是 assertEquals。我尝试了以下方法:
assertThat(data.get("key"), equalTo("value"));
当然,由于类型不匹配,它不起作用:
Wrong 2nd argument type. Found: 'org.hamcrest.Matcher<java.lang.String>', required: 'org.hamcrest.Matcher<? super java.lang.Object>' less...
String 的第一个参数的显式类型转换有帮助,但我想避免它。例如assertEquals 不需要类型转换。
那么,如何使用assertThat 方法检查放入上面声明的Map 对象的值是否等于特定的String?
【问题讨论】:
-
将 data.get 转换为字符串可能会有所帮助
-
是的,它有帮助。关键是我想避免显式类型转换。寻找一种方法让它像 assertEquals 一样工作,但使用 assertThat。
-
Matcher.<Object>equalTo("value").
标签: java android junit assertions