JUnit - 参数化测试 - 多个构造函数调用

时间:2015-03-02 10:08:57

标签: java junit junit4

我有一个文本文件列表。我无法将它们全部加载在一起,所以我构建了一个参数化测试,其中只有一些文件一起测试(test1:file1 ... file5,test2:file6 ... file10,...)。文件将加载到类的构造函数中。加载的文件范围取决于参数。我在课堂上有不同的测试方法(用于描述下面问题的代码)。

问题:为类的每个测试方法单独调用构造函数。这意味着:使用10种方法进行测试,对于要测试的每个文件范围,构造函数被调用10次。结果:通过构造函数调用将文件加载到每个测试用例中10次。

该问题的任何解释或解决方案?

@RunWith(Parameterized.class)   
public class PageListTest {

    private int fileFrom, fileTo;

    @Parameters
    public static Collection<Object[]> data() {
        Object[][] data = new Object[][] {{0, 3}, {22, 24}};
        return Arrays.asList(data);
    }

    public PageListTest(int from, int to) throws Exception {
        fileFrom = from;
        fileTo = to;
        //files are loaded ....
    }

    @Test
    public void testA() {
        //....
    }

    @Test
    public void testB() {
        //....
    }

    //....
}

提前致谢。

PS:我当然可以通过调用所有方法测试一个“测试”来解决问题。声明的方法。 Bur我想要一个更好的解决方案。

1 个答案:

答案 0 :(得分:2)

说明:JUnit的工作原理。有a new class instance for each test

创建文件编号到文件内容的静态地图。在您的构造函数中,测试您是否已经加载了该文件。如果没有,请加载它。如果是,请跳过!