假设我想用这个签名对一个方法进行单元测试:
List<MyItem> getMyItems();
假设MyItem
是一个具有许多属性的 Pojo,其中之一是"name"
通过getName()
.
我关心的只是验证List<MyItem>
或 anyIterable
包含两个MyItem
实例,其"name"
属性具有值"foo"
和"bar"
。如果任何其他属性不匹配,我真的不关心这个测试的目的。如果名称匹配,则测试成功。
如果可能的话,我希望它是单行的。这是我想做的那种事情的一些“伪语法”。
assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
Hamcrest 对这类事情有好处吗?如果是这样,我上面的伪语法的 hamcrest 版本到底是什么?