开发者

How to write dynamic Test Case

Suppose, I have a junit test class:

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")}
}

The test method reads the input data from the file and test the component with the input data.

What if I am changing the MyComponentTest ?

class MyComponentTest {

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

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

Now I have only one test (testAll) instead of three tests (test1, test2, and test3) as开发者_如何学编程 it was before. The Runner for example will not recognize three separate tests as it did in the previous version of the class.

My question is: how to make each test method invocation a separate test from the junit point of view ?


Though you can use Junit's Parameterized tests for this it is bit involved and ugly. I suggest you looking at the spockframework which simplifies this a lot. And there is also another option in TestNG.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜