我正在用爪哇和斷言J測試一些UI功能。因此,當(dāng)我從 UI 收到一些大量字符串時,我應(yīng)該驗(yàn)證該 String 是否包含來自 的至少一個預(yù)定義值。很容易做相反的事情 - 驗(yàn)證列表是否至少包含一次字符串值,但這不是我的情況。我無法在標(biāo)準(zhǔn)方法中找到解決方案。List<String>public static final List<String> OPTIONS = Arrays.asList("Foo", "Bar", "Baz");
String text = "Just some random text with bar";我需要的是這樣的:Assertions.assertThat(text)
.as("Should contain at least one value from OPTIONS ")
.containsAnyOf(OPTIONS)
3 回答

翻翻過去那場雪
TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個贊
.matches(s -> OPTIONS.stream().anyMatch(option -> s.contains(option)));

幕布斯6054654
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個贊
您還可以嘗試使用條件和斷言J斷言,例如:例如:
assertThat(OPTIONS) .areAtLeastOne(new Condition<>(text::contains, String.format("Error message '%s'", args);

炎炎設(shè)計(jì)
TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個贊
添加回答
舉報
0/150
提交
取消