assertj - 来自 assertJ 的方法 anySatisfy 吞下实际的失败消息
问题描述
我在我的项目中使用 assertJ 来很好地制定测试断言。我调用anySatisfy
一个集合,其中我在 lambda 中传递断言,至少一个集合元素必须满足这些断言。
assertThat(myCollection).anySatisfy(myCollectionElement-> {
assertThat(myCollectionElement).callAnyAssertionMethod();
assertThat(myCollectionElement).anotherAssertionMethod();
}
一旦没有元素满足所需的断言,anySatisfy
就会按预期失败。
问题是控制台输出如下
java.lang.AssertionError:
Expecting any element of:
<allCollectionElementsArSerializedHere>
to satisfy the given assertions requirements but none did.
at myPackage.myTestClass.myTestMethod(MyTestClass.java:xyz)
最后,我确实知道anySatisfy
在线调用xyz
失败,但我不知道 lambda 中的哪些特定断言没有得到满足。我只能在调试器中看到。
我怎样才能获得预期的日志输出?
解决方案
您不能,但我们已改进allSatisfy
以报告未满足的要求。我们将为anySatisfy
下一个版本做同样的事情,我创建了https://github.com/joel-costigliola/assertj-core/issues/1400来跟踪它。
推荐阅读
- python - Mac 上的 Selenium ChromeDriver 让我退出帐户
- kotlin - activeNetworkInfo 和 isConnected 被划掉
- node.js - 使用 gmail api 过滤掉某种格式的电子邮件
- google-sheets - Google表格-带有INDEX参数的IF语句给我#ERROR(解析错误)
- powerbi - 基于切片器选择的 Power BI DAX 过滤器矩阵/表
- php - 动态数组变成静态数组
- python - Pandas DataFrame Loop 上的循环问题
- sql - 在 Ms Access 中创建 DSN Less SQL 连接时,如何指定架构?
- javascript -