我们到了.您可以随心所欲地将contains
和matchesRegex
个方法放入变量中!
package org.example.test;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.function.Predicate;
import java.util.regex.Pattern;
import static org.assertj.core.api.Assertions.assertThat;
public class MultipleConditionsTest {
@Test
public void test() {
// Given
String someString = "", regex = "";
// When
ArrayList<String> actual = new ArrayList<>();
// Then
assertThat(actual)
.anyMatch(contains(someString).or(matchesRegex(regex)));
}
private static Predicate<? super String> matchesRegex(String regex) {
return string ->Pattern.compile(regex).matcher(string).matches();
}
private static Predicate<String> contains(String someString) {
return string -> string.equalsIgnoreCase(someString);
}
}
你可以随心所欲地组合,像这样
@Test
public void containsOrMatchesRegexTest() {
// Given
// When
List<String> fruits = Arrays.asList("banana", "apple", "orange");
// Then
assertThat(fruits)
.as("At least one element should contain 'raspberry' or match the regex 'a.+?'")
.anyMatch(contains("raspberry").or(matchesRegex("a.+?")))
.as("At least one element should contain 'banana' or match the regex 'p.+?'")
.anyMatch(contains("banana").or(matchesRegex("p.+?")))
.as("No element should contain 'blueberry' or match the regex '.+?c.+?'")
.noneMatch(contains("blueberry").or(matchesRegex(".+?c.+?")))
;
}