假设我想对具有以下签名的方法进行单元测试:
List<MyItem> getMyItems();
假设 MyItem
是一个 POJO,有许多属性,其中之一是通过 getName()
访问的 "name"
属性。我只关心验证 List<MyItem>
或任何 Iterable
是否包含两个 MyItem
实例,这两个实例的 "name"
属性分别为 "foo"
和 "bar"
。如果其他属性不匹配,出于此测试的目的,我并不在意。如果名称匹配,则测试成功。
如果可能的话,我希望它是一行代码。以下是我想要做的类似"伪语法":
assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
< p > Hamcrest对于这种类型的任务是否有用?如果是,那么我的伪代码语法的Hamcrest版本会是什么样子呢?< /p >
containsInAnyOrder
(来自同一父类) :) - Jorge Campos