2 回答

TA贡献1820条经验 获得超10个赞
AssertJ 似乎没有为可选集合提供实用程序,但您可以迭代您的列表并对每个项目执行您的断言。
list.forEach(element -> assertThat(element)
.isPresent()
.hasValue("something"));
一种可能更好的方法是收集所有断言,而不是停留在第一个断言上。你可以用SoftAssertions不同的方式使用,但我更喜欢这个:
SoftAssertions.assertSoftly(softly ->
list.forEach(element -> softly.assertThat(element).isPresent())
);

TA贡献1872条经验 获得超3个赞
assertThat(list).allSatisfy(o -> assertThat(o).hasValue("something")));
爪哇文档:
对于List<Optional<T>>
,另请参阅:https://www.javadoc.io/doc/org.assertj/assertj-core/latest/org/assertj/core/api/AbstractOptionalAssert.html#hasValueSatisfying(java.util.function.Consumer)
验证实际的 Optional 是否包含一个值,并将该值提供给给定的 Consumer 以进行进一步的断言。应该用作对包含对象进行更深入断言的方式,作为对值的进一步要求。
添加回答
举报