【发布时间】:2018-01-13 16:17:19
【问题描述】:
使用 hamcrest 和 java 8,断言集合包含具有特定要求的元素的最简单方法是什么(一个衬线)? 我希望能够一次性检索元素(如果存在)并对其执行一些测试(并且以可读的形式)。 或者至少可以断言一个列表包含一个特定元素,并一次性返回它,这样我就可以对其进行一些测试。
【问题讨论】:
标签: java unit-testing hamcrest assertj
使用 hamcrest 和 java 8,断言集合包含具有特定要求的元素的最简单方法是什么(一个衬线)? 我希望能够一次性检索元素(如果存在)并对其执行一些测试(并且以可读的形式)。 或者至少可以断言一个列表包含一个特定元素,并一次性返回它,这样我就可以对其进行一些测试。
【问题讨论】:
标签: java unit-testing hamcrest assertj
使用 AssertJ,我会尝试以下方法之一:
anySatisfy(以Consumer 表示以信息性错误结尾的要求)anyMatch(采用Predicate,错误信息较少)hasOnlyOneElementSatisfying(取 Consumer,如果恰好有一个元素匹配,则工作)haveAtLeastOne(采用 Condition,类似于 Hamcrest macther)要获得一个单行,您可能必须将Condition、Consumer 或Predicate 提取到变量/字段而不是内联它。
按照 javadoc 链接,它们都有代码示例说明如何使用它们。您还可以查看 assertj-examples 项目,这是 AssertJ 的展示。
希望有帮助
【讨论】: