如何使用 AssertJ 检查另一个字符串中是否至少包含一个字符串?
How to check if at least one string is contained in another with AssertJ?
我想使用 AssertJ 检查是否至少有一个字符串包含在另一个字符串中。
例如,有:
String actual = "I am a string";
String oneString = "am";
String anotherString = "some string";
目前我可以写:
assertThat(actual.contains(oneString) || actual.contains(anotherString)).isTrue();
所以如果两个条件之一为真,断言就会通过。但是,在失败的情况下,没有详细说明到底是什么失败了。
什么是实现此检查的好方法,并在失败时提供具体细节?
自 AssertJ 3.21.0 起,containsAnyOf
可用:
String actual = "I am a string";
String oneString = "am";
String anotherString = "some string";
assertThat(actual).containsAnyOf(oneString, anotherString);
自 AssertJ 3.12.0 起,satisfiesAnyOf
可用于检查 actual
中是否至少包含一个字符串:
String actual = "I am a string";
String oneString = "am";
String anotherString = "some string";
assertThat(actual).satisfiesAnyOf(s -> assertThat(s).contains(oneString),
s -> assertThat(s).contains(anotherString));
我想使用 AssertJ 检查是否至少有一个字符串包含在另一个字符串中。
例如,有:
String actual = "I am a string";
String oneString = "am";
String anotherString = "some string";
目前我可以写:
assertThat(actual.contains(oneString) || actual.contains(anotherString)).isTrue();
所以如果两个条件之一为真,断言就会通过。但是,在失败的情况下,没有详细说明到底是什么失败了。
什么是实现此检查的好方法,并在失败时提供具体细节?
自 AssertJ 3.21.0 起,containsAnyOf
可用:
String actual = "I am a string";
String oneString = "am";
String anotherString = "some string";
assertThat(actual).containsAnyOf(oneString, anotherString);
自 AssertJ 3.12.0 起,satisfiesAnyOf
可用于检查 actual
中是否至少包含一个字符串:
String actual = "I am a string";
String oneString = "am";
String anotherString = "some string";
assertThat(actual).satisfiesAnyOf(s -> assertThat(s).contains(oneString),
s -> assertThat(s).contains(anotherString));