Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类的每个方法的JUnitParams_Java_Testing_Junitparams - Fatal编程技术网

Java 类的每个方法的JUnitParams

Java 类的每个方法的JUnitParams,java,testing,junitparams,Java,Testing,Junitparams,是否可以使用JUnitParams和类级注释为测试类的每个方法运行参数化测试?比如: @RunWith(JUnitParamsRunner.class) @Parameters(method = "paramsGenerator") public class TestMethod { public Integer[] paramsGenerator() { return new Integer[] {1, 2, 3}; } @Test publ

是否可以使用JUnitParams和类级注释为测试类的每个方法运行参数化测试?比如:

@RunWith(JUnitParamsRunner.class)
@Parameters(method = "paramsGenerator")
public class TestMethod {

    public Integer[] paramsGenerator() {
        return new Integer[] {1, 2, 3};
    }

    @Test
    public void test1(Integer myInt) {
        ......
    }

    @Test
    public void test2(Integer myInt) {
        ......
    }
}

测试类应如下所示:

@RunWith(Parameterized.class)
public class Testcase {

    private int myInt;

    public Testcase(int myInt) {
        this.myInt = myInt;
    }

    @Parameters(name = "{0}")
    public static Collection<Integer> data() {
        Integer[] data = new Integer[] {1,2,3,4};

        return Arrays.asList(data);
    }

    @Test
    public void test1() {
        // TODO
    }

    @Test
    public void test2() {
        // TODO
    }
}
@RunWith(参数化的.class)
公共类测试用例{
私有int-myInt;
公共测试用例(int-myInt){
this.myInt=myInt;
}
@参数(name=“{0}”)
公共静态收集数据(){
整数[]数据=新整数[]{1,2,3,4};
返回数组.asList(数据);
}
@试验
公共void test1(){
//待办事项
}
@试验
公共无效测试2(){
//待办事项
}
}

我不知道你是从哪里得到JUnitParamsRunner的。正如您在我的示例中所看到的,JUnit4定义了
参数化的

否,您不能有覆盖所有测试方法的类级参数注释。必须在每个测试方法上声明
@参数(method=“paramsGenerator”)
。您的用例非常罕见-大多数情况下,不同的测试方法需要不同的参数(例如,您有一种方法用于有效输入,另一种方法用于无效输入)。

在询问之前您是否尝试过?这应该是默认行为。是的,应该是,但不是。我得到的
方法test1应该没有参数
您必须定义一个构造函数,该构造函数接受参数并将其存储在字段中。然后,这些方法可以使用字段中的值,而不是作为参数。问题是关于JUnit而不是参数化的