Погляньте на Параметризовані тести в 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;
}
}
Також перевірте цей приклад