【发布时间】:2012-08-28 19:43:20
【问题描述】:
假设我想用这个签名对一个方法进行单元测试:
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 版本到底是什么?
【问题讨论】:
标签: java unit-testing junit4 hamcrest