0

我有一些本质上看起来像的测试套件

@Test
public void test1_2() {
    test(1,2);
}
@Test
public void test1_3() {
    test(1,3);
}
@Test
public void test4_5() {
    test(4,5);
}
@Test
public void test4_9() {
    test(4,9);
}

// and so forth

private void test(int i, int j) throws AssertionError{
    // ...
}

(这不是实际测试,而是本质,每个@Test方法只调用一个方法)

所以我的想法是我可以使用一个接受jUnit Runner@RunWith自定义BlockJUnit4ClassRunnerList

这将如何实现?或者有更好的方法吗?

4

2 回答 2

1

这在我看来就像是应该用Theories做的事情。否则,您可以使用Enclosed来拥有多个内部类,每个内部类都有自己的运行器。

于 2013-03-01T13:05:05.523 回答
1

为什么不使用 @Parameter ?

@RunWith(Parameterized.class)
public class YourTest{

 private int i;
 private int j;

 public Parameter(int i, int j) {
    this.i= i;
    this.j= j;
 }

 @Parameters
 public static Collection<Object[]> data() {
      Object[][] data = new Object[][] { { 1, 2 }, { 1,3 }, { 4,5 }, { 4,9 } };
      return Arrays.asList(data);
 }

 @Test
 public void test() throws InterruptedException {
    //use i & j
 } 
}
于 2013-03-01T14:22:31.027 回答