看看 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;
}
}
另请查看此示例