编程语言
首页 > 编程语言> > java-在JUnit测试案例中使用不同的数据子集测试不同的方法

java-在JUnit测试案例中使用不同的数据子集测试不同的方法

作者:互联网

说我有一个JUnit测试用例:

@RunWith(Parameterized.class)
public class TestMyClass {

    @Parameter
    private int expected;
    @Parameter
    private int actual;  

    @Parameters
    public static Collection<Object[]> data() {
    return Arrays.asList(new Object[][] {     
             { 0,1 }, { 1,2 }, { 2,3 }, { 3,4 }, { 4,5 }, { 5,6 },{ 6,7 }  
       });
    }

    @Test
    public void test1 { //test }

    @Test
    public void test2 { //test }

}

我只想用{0,1},{1,2}和{2,3}运行test1
并仅使用{3,4},{4,5} {5,6}运行test2

我该如何实现?

编辑:在运行时从文件中读取参数.

解决方法:

似乎无法使用JUnit标准的’@Parameters’东西在一次类中对不同的测试使用不同的参数集.
您可以尝试使用junit-dataprovider.它类似于TestNG数据提供程序.
例如:

@RunWith(DataProviderRunner.class)
public class TestMyClass {

    @DataProvider
    public static Object[][] firstDataset() {
    return new Object[][] {     
             { 3,4 }, { 4,5 }, { 5,6 },{ 6,7 }  
       };
    }


    @DataProvider
    public static Object[][] secondDataset() {
    return new Object[][] {     
             { 3,4 }, { 4,5 }, { 5,6 },{ 6,7 }  
       };
    }

    @Test
    @UseDataProvider("firstDataset")
    public void test1(int a, int b) { //test }

    @Test
    @UseDataProvider("secondDataset")
    public void test2(int a, int b) { //test }

}

或者,您可以为每个测试创建2个类.

但是我认为使用junit-dataprovider更方便.

标签:parameterized,junit,parameterized-unit-test,java
来源: https://codeday.me/bug/20191027/1947787.html