为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

精慕HU 2022-09-22 16:26:31

我正在用爪哇和断言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)


查看完整描述

3 回答

?
翻翻过去那场雪

TA贡献1728条经验 获得超12个赞

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



查看完整回答
反对 回复 2022-09-22
?
幕布斯6054654

TA贡献1552条经验 获得超7个赞

您还可以尝试使用条件和断言J断言,例如:例如:

assertThat(OPTIONS)
.areAtLeastOne(new Condition<>(text::contains,
                                String.format("Error message '%s'", args);


查看完整回答
反对 回复 2022-09-22
?
炎炎设计

TA贡献1489条经验 获得超3个赞

使用断言 J 的另一个选项

assertThat(text.split(" ")).containsAnyElementsOf(OPTIONS);



查看完整回答
反对 回复 2022-09-22

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信