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條經驗 獲得超4個贊
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 以進行進一步的斷言。應該用作對包含對象進行更深入斷言的方式,作為對值的進一步要求。
添加回答
舉報