Как использовать ParametrizedTest в JUnit 4, чтобы проверить, соответствует ли параметр списка ввода выражению регулярного выражения - PullRequest
0 голосов
/ 31 января 2020

Я хочу создать ParametrizedTest для потока пары объектов в качестве заглушки данных, чтобы проверить, соответствуют ли элементы выражению регулярного выражения:

"^[a-zA-Z0-9]*$"

, чтобы предотвратить дублирование кода в моем классе Test. Ранее я использовал JUnit 5 с таким подходом, как:

private static Stream<Arguments> dataInput() {
    return Stream.of()
}

и

@ParameterizedTest(name = "result for \"{0}\", should be \"{1}\"")
@MethodSource("dataInput")
void test(String given, boolean expected) {

   boolean isValid = callFunctionHere();

   assertThat(isValid, is(expectedIsValid));
}

К сожалению, теперь я предполагаю, что использование JUnit 4 и выше недоступно. Мой вопрос: есть ли в JUnit 4 аналогичный способ достижения той же цели с помощью созданного dataStub, например:

Stream.of(String, boolean, ...);

и проверка с помощью теста, все ли элементы соответствуют выражению регулярного выражения или не.

Буду благодарен за предложения о том, как достичь этой цели с использованием JUnit 4.

...