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