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

时间:2016-04-28 08:49:36

标签: java unit-testing junit4

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

TokenValidHandler

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

1 个答案:

答案 0 :(得分:2)

  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);
    }
    
  5. 如果使用注释@Parameter(value = N),其中N是参数数组的索引,那么在没有定义构造函数的情况下,您可以更快地完成。