В JUnit 4 было легко тестировать инварианты для множества классов с помощью аннотации @Parameterized. Ключевым моментом является то, что набор тестов выполняется с одним списком аргументов.
Как повторить это в JUnit 5 без использования JUnit-vintage?
@ParameterizedTest неприменимо к тестовому классу. @TestTemplate звучит так, как будто это может быть уместно, но цель этой аннотации также является методом.
Пример такого теста JUnit 4:
@RunWith( Parameterized.class )
public class FooInvariantsTest{
@Parameterized.Parameters
public static Collection data(){
return new Arrays.asList(
new Object[]{ new CsvFoo() ),
new Object[]{ new SqlFoo() ),
new Object[]{ new XmlFoo() ),
);
}
private Foo fooUnderTest;
public FooInvariantsTest( Foo fooToTest ){
fooUnderTest = fooToTest;
}
@Test
public void testInvariant1(){
...
}
@Test
public void testInvariant2(){
...
}
}
Подробнее здесь: https://stackoverflow.com/questions/468 ... in-junit-5