繁体   English   中英

使用不同的参数使jUnitRunner运行测试类多次

[英]Make jUnit runner run test class multiple times with different parameters

我有一些jUnit4测试类,我想使用注解中传递的不同参数多次运行。 例如,像这样:

@RunWith(MyClassRunner.class)
@Params("paramFor1stRun", "paramFor2ndRun")
class MyTest {
  @Test
  public void doTest() {..}
}

我认为Runner可以帮助我,但是我不知道如何实现。 你能给个建议吗?

  1. 您需要将注释@RunWith(Parameterized.class)到测试中。
  2. 然后,使用所需的参数为您的类创建一个构造函数:

     public Test(String pParam1, String param2) { this.param1 = pParam1; this.param2 = pParam2; } 
  3. 然后,声明一个这样的方法(其中提供了与构造函数相对应的参数数组):

     @Parameters public static Collection<Object[]> data() { Object[][] data = {{"p11","p12"},{"p21","p22"}} return Arrays.asList(data); } 
  4. 您可以进行测试,该测试将针对数组的每一行执行:

     @Test public void myTest() { assertEquals(this.param1,this.param2); } 

如果使用批注@Parameter(value = N) ,其中N是参数数组的索引,则无需定义构造函数,您可以得到一种更快的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM