相关疑难解决方法(0)

如何断言Iterable包含具有特定属性的元素?

假设我想使用此签名对方法进行单元测试:

List<MyItem> getMyItems();
Run Code Online (Sandbox Code Playgroud)

假设MyItem是一个Pojo,它有许多属性,其中一个是"name"通过访问的getName().

我关心验证的是List<MyItem>,或者任何Iterable,包含两个MyItem实例,其"name"属性具有值"foo""bar".如果任何其他属性不匹配,我真的不关心此测试的目的.如果名称匹配,则是成功的测试.

如果可能的话,我希望它是单行的.这是我想要做的事情的一些"伪语法".

assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
Run Code Online (Sandbox Code Playgroud)

哈姆克雷斯特会对这类事情有好处吗?如果是这样,我上面的伪语法的hamcrest版本到底是什么?

java unit-testing hamcrest junit4

99
推荐指数
7
解决办法
12万
查看次数

标签 统计

hamcrest ×1

java ×1

junit4 ×1

unit-testing ×1