2017 обновление: JUnit 5 будет включать параметризованные тесты с расширением junit-jupiter-params
. Некоторые примеры из документации :
Один параметр примитивных типов (@ValueSource
):
@ParameterizedTest
@ValueSource(strings = { "Hello", "World" })
void testWithStringParameter(String argument) {
assertNotNull(argument);
}
Значения, разделенные запятыми (@CsvSource
), позволяют указывать несколько параметров, аналогичных приведенным ниже JUnitParams:
@ParameterizedTest
@CsvSource({ "foo, 1", "bar, 2", "'baz, qux', 3" })
void testWithCsvSource(String first, int second) {
assertNotNull(first);
assertNotEquals(0, second);
}
Другие исходные аннотации включают @EnumSource
, @MethodSource
, @ArgumentsSource
и @CsvFileSource
, подробности см. В документации .
Оригинальный ответ:
JUnitParams (https://github.com/Pragmatists/JUnitParams) выглядит неплохой альтернативой. Он позволяет вам указывать параметры теста в виде строк, например:
@RunWith(JUnitParamsRunner.class)
public class MyTestSuite {
@Test
@Parameters({"1,2", "3,4"})
public testAdd(int fValue1, int fValue2) {
...
}
}
Вы также можете указать параметры с помощью отдельных методов, классов или файлов, обратитесь к JUnitParamsRunner api docs для получения подробной информации.