Junit 参数化数组
Junit Parameterized arrays
有什么方法可以用数组而不是整数来测试用例吗?
例如:
private int[] myArray;
public SortingTestNullCase(int[] arr){
this.myArray=arr;
}
@Parameterized.Parameters
public static Collection testCases() {
return Arrays.asList(new Integer[][] {
{1,1,1},
{2,2,2}
});
}
我总是收到错误“java.lang.IllegalArgumentException:参数数量错误”,因为我在构造函数中使用带参数化参数的整数,有什么方法可以用数组测试输入吗?
您的代码有两个问题:
你的数组必须使用相同的类型,否则你会
得到 IllegalArgumentException: argument type mismatch
您的测试数据仅通过创建一个 Integer[][]
数组来创建一个参数输入。
这是一些适合您的代码
@RunWith(Parameterized.class)
public class PTest {
private Integer[] myArray;
public PTest(Integer[] array) {
myArray = array;
}
@Parameters
public static Collection testCases() {
return Arrays.asList(new Integer[][] { { 1, 1, 1 } }, new Integer[][] { { 2, 2, 2 } });
}
@Test
public void doTest() {
System.out.println(Arrays.toString(myArray));
}
}
结果看起来像
[1, 1, 1]
[2, 2, 2]
您可以为您的数据成员使用 @Parameter
注释,而不是使用构造函数,它必须是 public
then
@RunWith(Parameterized.class)
public class PTest {
@Parameter
public Integer[] myArray;
@Parameters
public static Collection testCases() {
return Arrays.asList(new Integer[][] { { 1, 1, 1 } }, new Integer[][] { { 2, 2, 2 } });
}
@Test
public void doTest() {
System.out.println(Arrays.toString(myArray));
}
}
有什么方法可以用数组而不是整数来测试用例吗? 例如:
private int[] myArray;
public SortingTestNullCase(int[] arr){
this.myArray=arr;
}
@Parameterized.Parameters
public static Collection testCases() {
return Arrays.asList(new Integer[][] {
{1,1,1},
{2,2,2}
});
}
我总是收到错误“java.lang.IllegalArgumentException:参数数量错误”,因为我在构造函数中使用带参数化参数的整数,有什么方法可以用数组测试输入吗?
您的代码有两个问题:
你的数组必须使用相同的类型,否则你会
得到IllegalArgumentException: argument type mismatch
您的测试数据仅通过创建一个
Integer[][]
数组来创建一个参数输入。
这是一些适合您的代码
@RunWith(Parameterized.class)
public class PTest {
private Integer[] myArray;
public PTest(Integer[] array) {
myArray = array;
}
@Parameters
public static Collection testCases() {
return Arrays.asList(new Integer[][] { { 1, 1, 1 } }, new Integer[][] { { 2, 2, 2 } });
}
@Test
public void doTest() {
System.out.println(Arrays.toString(myArray));
}
}
结果看起来像
[1, 1, 1]
[2, 2, 2]
您可以为您的数据成员使用 @Parameter
注释,而不是使用构造函数,它必须是 public
then
@RunWith(Parameterized.class)
public class PTest {
@Parameter
public Integer[] myArray;
@Parameters
public static Collection testCases() {
return Arrays.asList(new Integer[][] { { 1, 1, 1 } }, new Integer[][] { { 2, 2, 2 } });
}
@Test
public void doTest() {
System.out.println(Arrays.toString(myArray));
}
}