最近在网上闲逛,发现谷歌给 Junit4 搞了一个有意思的 runner。

TestParameterInjector is a JUnit4 test runner that runs its test methods for different combinations of field/parameter values.

先看下怎么用的?

案例代码


import com.google.testing.junit.testparameterinjector.TestParameterInjector;
import com.google.testing.junit.testparameterinjector.TestParameter;
import org.junit.Test;
import org.junit.runner.RunWith;

@RunWith(TestParameterInjector.class)
public class Junit4Test {

    @TestParameter({"1", "2", "3"}) int i;

    @Test
    public void test1(@TestParameter boolean enableFlag) {
        System.out.println("----" + enableFlag);
    }

    @Test public void test2(@TestParameter MyEnum myEnum) {
        // ...
        System.out.println("----" + myEnum);
    }

    enum MyEnum { VALUE_A, VALUE_B, VALUE_C }
}

pom.xml


<dependency>
  <groupId>com.google.testparameterinjector</groupId>
  <artifactId>test-parameter-injector</artifactId>
  <version>1.4</version>
</dependency>

跑起来的样子

有啥用呢?

最大的用户就是省去了你重复写代码的工作。想想如果没有这个 TestParameterInjector, 你要测试这么多组合,得写多少代码?


↙↙↙阅读原文可查看相关链接,并与作者交流