hamcrest "hasItem" 能得到几个匹配器吗?
can hamcrest "hasItem" get few matchers?
我看到了这个post
assertThat( myClass.getMyItems(), contains(
hasProperty("foo", is("bar")),
hasProperty("name", is("bar"))
));
和
assertThat(logsFromWaze, hasItem(
hasProperty("foo", is("bar")),
hasProperty("name", is("bar"))));
它是如何工作的?
难道 hasItem
不期望一个匹配器作为参数而不是匹配器列表吗?
没有接受可变参数的 hasItem
匹配器,但您可以通过 allOf
匹配器组合 hasProperty("foo", is("bar"))
和 hasProperty("name", is("bar"))
:
assertThat(logsFromWaze, hasItem(
allOf(
hasProperty("foo", is("bar")),
hasProperty("name", is("bar"))
)
));
当对被检查的 Iterable
的单次传递产生至少一个与传递给 allOf
的所有匹配器相匹配的项目时,此测试将成功。
我看到了这个post
assertThat( myClass.getMyItems(), contains(
hasProperty("foo", is("bar")),
hasProperty("name", is("bar"))
));
和
assertThat(logsFromWaze, hasItem(
hasProperty("foo", is("bar")),
hasProperty("name", is("bar"))));
它是如何工作的?
难道 hasItem
不期望一个匹配器作为参数而不是匹配器列表吗?
没有接受可变参数的 hasItem
匹配器,但您可以通过 allOf
匹配器组合 hasProperty("foo", is("bar"))
和 hasProperty("name", is("bar"))
:
assertThat(logsFromWaze, hasItem(
allOf(
hasProperty("foo", is("bar")),
hasProperty("name", is("bar"))
)
));
当对被检查的 Iterable
的单次传递产生至少一个与传递给 allOf
的所有匹配器相匹配的项目时,此测试将成功。