2 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
AssertJ 似乎沒(méi)有為可選集合提供實(shí)用程序,但您可以迭代您的列表并對(duì)每個(gè)項(xiàng)目執(zhí)行您的斷言。
list.forEach(element -> assertThat(element)
.isPresent()
.hasValue("something"));
一種可能更好的方法是收集所有斷言,而不是停留在第一個(gè)斷言上。你可以用SoftAssertions不同的方式使用,但我更喜歡這個(gè):
SoftAssertions.assertSoftly(softly ->
list.forEach(element -> softly.assertThat(element).isPresent())
);

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
assertThat(list).allSatisfy(o -> assertThat(o).hasValue("something")));
爪哇文檔:
對(duì)于List<Optional<T>>
,另請(qǐng)參閱:https://www.javadoc.io/doc/org.assertj/assertj-core/latest/org/assertj/core/api/AbstractOptionalAssert.html#hasValueSatisfying(java.util.function.Consumer)
驗(yàn)證實(shí)際的 Optional 是否包含一個(gè)值,并將該值提供給給定的 Consumer 以進(jìn)行進(jìn)一步的斷言。應(yīng)該用作對(duì)包含對(duì)象進(jìn)行更深入斷言的方式,作為對(duì)值的進(jìn)一步要求。
添加回答
舉報(bào)