Я пытаюсь разработать параметризованный тест в JUnit 5, как в примере ниже.
@ParameterizedTest
@ArgumentsSource(ArgClassProvider.class)
void testAction_shouldSmth(ArgClass argClass) {
//...
}
class ArgClassProvider implements ArgumentsProvider {
@Override
public Stream<? extends Arguments> provideArguments(ExtensionContext extensionContext) throws Exception {
return Stream.of(new ArgClass(), new ArgClass()).map(Arguments::of);
}
}
Попытка запустить тест вызывает исключение:
java.lang.NoSuchMethodException: com.ots.platform_sl.service.config.service.EarnMilesServiceTestHotels$ArgClassProvider.<init>()
...
org.junit.platform.commons.util.PreconditionViolationException: Configuration error: You must provide at least one argument for this @ParameterizedTest
...
Вы должны предоставить хотя бы один аргумент для этого @ ParameterizedTest
Это сообщение заставляет меня чувствовать, что я делаю что-то не так, не так ли?
р. s. У меня есть предположение, что доступны только арги примитивных типов.