import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.equalTo;
assertThat(actual, hasItem(hasProperty("id", equalTo(1L))));
其中,实际是一个ID为Long的POJO。
我明白了,
assertThat(T, Matcher<? super T>)
类型中的方法MatcherAssert
不适用于参数(List<Pojo>, Matcher<Iterable<? super Object>>)
从各种文档和其他stackoverflow页面,它应该是有效的,但我得到上述错误。
答案 0 :(得分:53)
尝试明确填写type参数 - 假设actual
为List<YourPojo>
,请尝试调用:
assertThat(actual, hasItem(Matchers.<YourPojo>hasProperty("id", equalTo(1L))));
答案 1 :(得分:8)
当您不必指定类类型时的较短版本:
List<IssueDefinitionDto> definitions = ...; // Tested variable
...
assertThat(definitions, hasItem(hasProperty("id", is(10L))));