如何使用assertj检查字符串是否是给定值之一?

问题描述

如何以更简单的方式检查字符串是否与给定选项之一匹配?

List<String> OPTIONS = Arrays.asList("alpha","beta","gamma");
String text = "beta";
assertthat(OPTIONS.stream().anyMatch(o -> o.equals(text))).isTrue();

解决方法

AssertJ 中有一个内置的解决方案:org.assertj.core.api.AbstractAssert::isIn

@Test
public void testOneOf() {
  List<String> OPTIONS = Arrays.asList("alpha","beta","gamma");

  String text = "beta";

  Assertions.assertThat(text)
    .as("Should contain one value from OPTIONS")
    .isIn(OPTIONS);
}