如何断言迭代包含具有特定属性的元素?
2022-08-31 07:35:58
假设我想用这个签名对一个方法进行单元测试:
List<MyItem> getMyItems();
假设是一个具有许多属性的 Pojo,其中一个是 ,可通过 访问。MyItem
"name"
getName()
我所关心的验证是 , 或任何 包含两个实例,其属性具有 值 和 。如果任何其他属性不匹配,我并不真正关心此测试的目的。如果名称匹配,则测试成功。List<MyItem>
Iterable
MyItem
"name"
"foo"
"bar"
如果可能的话,我希望它是单行的。这是我想做的一些事情的一些“伪语法”。
assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
Hamcrest对这种事情有好处吗?如果是这样,我上面的伪语法的hamcrest版本究竟是什么?