Spójrz na sparametryzowane testy w JUnit 4.
Właściwie zrobiłem to kilka dni temu. Spróbuję wyjaśnić ...
Najpierw zbuduj klasę testową normalnie, tak jak testowałeś tylko z jednym plikiem wejściowym. Udekoruj swoją klasę:
@RunWith(Parameterized.class)
Zbuduj jeden konstruktor, który pobierze dane wejściowe, które będą się zmieniać przy każdym wywołaniu testu (w tym przypadku może to być sam plik)
Następnie utwórz statyczną metodę, która zwróci a Collection
z tablic. Każda tablica w kolekcji będzie zawierała argumenty wejściowe dla twojego konstruktora klasy, np. Plik. Udekoruj tę metodę:
@Parameters
Oto przykładowa klasa.
@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;
}
}
Sprawdź również ten przykład