我在项目中使用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中的哪些特定断言。我只能在调试器中看到它。
如何获得预期的日志输出?
答案 0 :(得分:2)
您不能,但我们已改进allSatisfy
来报告未满足的要求。
在下一个版本中,我们将对anySatisfy
进行同样的操作,我已经创建了https://github.com/joel-costigliola/assertj-core/issues/1400来进行跟踪。