Java 不同测试JUNIT的不同参数化参数

Java 不同测试JUNIT的不同参数化参数,java,junit,Java,Junit,好的,我正在为我的项目构建测试用例,并使用JUnit进行测试。现在我面临的问题是,对于同一个文件的不同测试用例,我需要不同的参数集 public class ForTesting{ //Test 1 should run on ips {1, true} and {2,true} @Test public void Test1() { //Do first Test case } //Test 2 should run on ips

好的,我正在为我的项目构建测试用例,并使用JUnit进行测试。现在我面临的问题是,对于同一个文件的不同测试用例,我需要不同的参数集

public class ForTesting{
    //Test 1 should run on ips {1, true} and {2,true}
    @Test
    public void Test1()
    {
        //Do first Test case
    }
    //Test 2 should run on ips {3,true} and {4,true}
    @Test
    public void Test2()
    {
        //Do another Test case
    }
}
我知道我可以使用参数化参数提供多个参数,但问题是所有测试用例都运行同一组参数。有办法做到这一点吗

选项很少:

使用

在@理论中,使用

或使用

很少有选择:

使用

在@理论中,使用

或使用


如果您不只是在寻找标准的junit参数化测试,并且根据您公司的法律政策,您至少可以使用以下两个库,这使实现和阅读变得更容易:

1 Apache 2

2 LGPL受JUnit参数的启发,但带来了一些简单的分隔符配置、转换器等

@RunWith(ZohhakRunner.class)
public class PersonTest {

  @TestWith({"17, false", 
             "22, true" })
  public void shouldDecideAdulthood(int age, boolean expectedAdulthood) throws Exception {
    assertThat(new Person(age).isAdult(), is(expectedAdulthood));
  }
}

信用证:上面的例子是从JUnitParams的自述文件中无耻地复制和调整的。

如果您不只是在寻找标准的junit参数化测试,并且根据您公司的法律政策,您至少可以使用以下两个库,这使得实现和阅读都更加容易:

1 Apache 2

2 LGPL受JUnit参数的启发,但带来了一些简单的分隔符配置、转换器等

@RunWith(ZohhakRunner.class)
public class PersonTest {

  @TestWith({"17, false", 
             "22, true" })
  public void shouldDecideAdulthood(int age, boolean expectedAdulthood) throws Exception {
    assertThat(new Person(age).isAdult(), is(expectedAdulthood));
  }
}

信用:上面的例子都是从JUnitParams的自述中无耻地复制和调整的。

谢谢,这正是我需要的@Moldovan还没有,刚刚读过,但是没有上下文,所以farThanks这就是我需要的@Moldovan还没有,刚刚读过,但到目前为止还没有它的背景
@RunWith(JUnitParamsRunner.class)
public class PersonTest {

  @Test
  @Parameters({"17, false", 
               "22, true" })
  public void shouldDecideAdulthood(int age, boolean expectedAdulthood) throws Exception {
    assertThat(new Person(age).isAdult(), is(expectedAdulthood));
  }
}
@RunWith(ZohhakRunner.class)
public class PersonTest {

  @TestWith({"17, false", 
             "22, true" })
  public void shouldDecideAdulthood(int age, boolean expectedAdulthood) throws Exception {
    assertThat(new Person(age).isAdult(), is(expectedAdulthood));
  }
}