awf*_*fun 7 java unit-testing junit4
我有一些 jUnit4 测试类,我想使用注释中传递的不同参数运行多次。例如,像这样:
@RunWith(MyClassRunner.class)
@Params("paramFor1stRun", "paramFor2ndRun")
class MyTest {
@Test
public void doTest() {..}
}
Run Code Online (Sandbox Code Playgroud)
我认为 Runner 可以帮助我,但我不知道如何实现。你能给建议吗?
您需要将注释添加@RunWith(Parameterized.class)
到您的测试中。
然后,使用所需的参数为您的类创建一个构造函数:
public Test(String pParam1, String param2) {
this.param1 = pParam1;
this.param2 = pParam2;
}
Run Code Online (Sandbox Code Playgroud)
然后,声明一个像这样的方法(它提供与构造函数相对应的参数数组):
@Parameters
public static Collection<Object[]> data() {
Object[][] data = {{"p11", "p12"}, {"p21", "p22"}};
return Arrays.asList(data);
}
Run Code Online (Sandbox Code Playgroud)
您可以进行测试,该测试将对数组的每一行执行:
@Test
public void myTest() {
assertEquals(this.param1,this.param2);
}
Run Code Online (Sandbox Code Playgroud)
如果您使用注释,@Parameter(value = N)
其中 N 是参数数组的索引,则无需定义构造函数,您就有了一种更快的方法。
归档时间: |
|
查看次数: |
7656 次 |
最近记录: |