Я хочу параметризовать тесты, чтобы принять недопустимые имена в качестве аргумента, и получил ошибку «Нет параметра ParameterResolver, зарегистрированного для параметра [java.lang.String arg0] в конструкторе». Я прошел через проблемы, похожие на мои, до сих пор не могу решить это. Может ли кто-нибудь помочь мне с этим? Спасибо !!!
@RunWith(Parameterized.class)
public class MyTest {
private static final String ERROR_INFO = "we got an error.";
public String myInput;
public MyTest(String myInput){
this.myInput = myInput;
}
@BeforeAll
public void setup() { }
//Creates the test data
@Parameterized.Parameters
public static Collection<Object[]> data() {
Object[][] data = new Object[][]{{"test?", "test*"},{"test ", " test", "te st", "test\t", "\ttest", "te\tst"}};
return Arrays.asList(data);
}
@Test
public void GIVEN_invalid_value_THEN_fail(){
String errorMessage = Assertions.assertThrows(InvalidRequestException.class, () -> setUpRule(myInput)).getMessage();
assertThat("", errorMessage, Matchers.containsString(ERROR_INFO));
}
public void setupRule(String myInput){}