如何编写动态测试用例

时间:2011-06-04 13:57:29

标签: java unit-testing junit

假设我有一个junit测试类:

class MyComponentTest {

  private void test(File file) {...}

  @Test public void test1() {test("test1.txt")}
  @Test public void test2() {test("test2.txt")}
  @Test public void test3() {test("test3.txt")}
}

test方法从file读取输入数据,并使用输入数据测试组件。

如果我要更改MyComponentTest

,该怎么办?
class MyComponentTest {

  private void test(File file) {...}

  @Test public void testAll() {
    for (String name: dir.list())
      test(new File(name))
  }
}

现在我只有一次测试(testAll),而不是之前的三次测试(test1test2test3)。例如,Runner将无法识别三个单独的测试,就像在上一版本的类中一样。

我的问题是:如何从test的角度对每个junit方法调用进行单独的测试?

1 个答案:

答案 0 :(得分:2)

虽然你可以使用Junit's Parameterized测试,但它有点牵扯和丑陋。我建议你看spockframework,这简化了这一点。 TestNG还有另一种选择。