最近在网上闲逛,发现谷歌给 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 }
}
<dependency>
<groupId>com.google.testparameterinjector</groupId>
<artifactId>test-parameter-injector</artifactId>
<version>1.4</version>
</dependency>
最大的用户就是省去了你重复写代码的工作。想想如果没有这个 TestParameterInjector, 你要测试这么多组合,得写多少代码?