Передайте внешнюю переменную в аннотацию JUnit @ValueSource в @ParameterizedTest.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Передайте внешнюю переменную в аннотацию JUnit @ValueSource в @ParameterizedTest.

Сообщение Anonymous »

У меня есть массив строк, который я хотел бы использовать для нескольких модульных тестов. Стремясь дедуплицировать свой код и минимизировать количество изменений, которые мне нужно будет внести в параметры теста в будущем, я попытался определить переменную в своем тестовом классе JUnit, а затем повторно использовать эту переменную в качестве входных данных. параметр для каждой из моих аннотаций @ValueSource. Возможно ли это вообще или я упускаю из виду простую ошибку?

Код: Выделить всё

private static final String[] myParameters = {"a", "b", "c"};

// This fails with the message that `myParameters` isn't a recognized symbol, probably because it's not a valid Element for @ValueSource
@ParameterizedTest
@ValueSource(myParameters)
public void myTest(String param) {
// doesn't compile
}

// This fails with the message that "incompatible types: String[] cannot be converted to String"
@ParameterizedTest
@ValueSource(strings = myParameters)
public void myTest(String param) {
// doesn't compile
}

// This works fine, but I would need to duplicate the values of `strings` for each test
@ParameterizedTest
@ValueSource(strings = {"a", "b", "c"})
public void myTest(String param) {
// works fine, but its duplicative in terms of the @ValueSource parameter
}
Ссылки:

[*]Тип аннотации ValueSource
[*]JUnit GitHub >


Подробнее здесь: https://stackoverflow.com/questions/761 ... a-paramete
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»