如何断言某个字符串包含列表中的至少一个值<字符串>?

我正在用爪哇和断言J测试一些UI功能。因此,当我从 UI 收到一些大量字符串时,我应该验证该 String 是否包含来自 的至少一个预定义值。很容易做相反的事情 - 验证列表是否至少包含一次字符串值,但这不是我的情况。我无法在标准方法中找到解决方案。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)


精慕HU
浏览 210回答 3
3回答

翻翻过去那场雪

.matches(s&nbsp;->&nbsp;OPTIONS.stream().anyMatch(option&nbsp;->&nbsp;s.contains(option)));

幕布斯6054654

您还可以尝试使用条件和断言J断言,例如:例如:assertThat(OPTIONS) .areAtLeastOne(new&nbsp;Condition<>(text::contains, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String.format("Error&nbsp;message&nbsp;'%s'",&nbsp;args);

炎炎设计

使用断言 J&nbsp;的另一个选项assertThat(text.split("&nbsp;")).containsAnyElementsOf(OPTIONS);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java