Взгляните на Параметризованные тесты в JUnit 4.
На самом деле я сделал это несколько дней назад. Я постараюсь объяснить ...
Сначала соберите свой тестовый класс, как обычно, когда вы тестируете только с одним входным файлом.
Украсьте свой класс:
@RunWith(Parameterized.class)
Создайте один конструктор, который принимает входные данные, которые будут меняться при каждом вызове теста (в данном случае это может быть сам файл)
Затем создайте статический метод, который будет возвращать Collection
массивов. Каждый массив в коллекции будет содержать входные аргументы для вашего конструктора класса, например файл. Украсьте этот метод с помощью:
@Parameters
Вот пример класса.
@RunWith(Parameterized.class)
public class ParameterizedTest {
private File file;
public ParameterizedTest(File file) {
this.file = file;
}
@Test
public void test1() throws Exception { }
@Test
public void test2() throws Exception { }
@Parameters
public static Collection<Object[]> data() {
// load the files as you want
Object[] fileArg1 = new Object[] { new File("path1") };
Object[] fileArg2 = new Object[] { new File("path2") };
Collection<Object[]> data = new ArrayList<Object[]>();
data.add(fileArg1);
data.add(fileArg2);
return data;
}
}
Также проверьте это пример