实际上,我正在测试一个集合的项目,其中包含一个属性key equalTo("key")
,并且有两个句子中的属性value equalTo("value")
:
assertThat(categorizedFuaDto.getMetainfos(), contains(hasProperty("key", equalTo(receivedMetaInfoValue.getKey()))));
assertThat(categorizedFuaDto.getMetainfos(), contains(hasProperty("value", equalTo(receivedMetaInfoValue.getValue()))));
是否可以将它们合并为一个?
答案 0 :(得分:1)
您可以尝试以下方式:
assertThat(
categorizedFuaDto.getMetainfos(), hasItems(Matchers.<YourClass>
hasProperty("key", equalTo(receivedMetaInfoValue.getKey())),
hasProperty("value", equalTo(receivedMetaInfoValue.getValue()))
)
);
此方法返回的任何类型类型返回:categorizedFuaDto.getMetainfos()
请点击此处查看示例:https://stackoverflow.com/a/33123568/3899529
但我不确定这会给你带来什么好处。让测试尽可能简单易读是件好事。
答案 1 :(得分:0)
如果您想确保同一项(您的收藏品)同时满足两个条件,您最好将它们合并到一个匹配器中 AllOf 匹配器:
assertThat(categorizedFuaDto.getMetainfos(),
hasItem(allOf(hasProperty("key", equalTo(receivedMetaInfoValue.getKey())),
hasProperty("value", equalTo(receivedMetaInfoValue.getValue())))));