尝试将参数与 junit4 一起使用时,我在构造函数中得到一个空参数
I am getting a null parameter in the constructor when attempting to use parameters with junit4
基本上,我正在尝试使用 junit4 参数进行试验。我不清楚为什么我将 null 作为 LongMathAddTest 构造函数的参数。
谢谢
GC
@RunWith(value = Parameterized.class)
public class LongMathAddTest {
@Parameters
public static Iterable<Object[]> data()
{
Object[][] data = new Object[][]{{new Long[]{1L,3L,4L,5L},1},{new Object[]{2l,3l,6l,78l,90l},30},{new Object[]{3l,78l,4l,3l},4},{new Object[]{4l,545l,56l,3l},3},{new Object[]{4l},3},{null,null}};
return Arrays.asList(data);
}
private Long numbers[];
private Long total;
public LongMathAddTest(Long numbers[],Long total) {
this.numbers=numbers;
this.total=total;
}
是不是因为你最后一个参数组是{null,null}
?
此外,当我按原样尝试 运行 你的代码时,我得到了类型不匹配的 IllegalArgumentExceptions,你必须确保你的第二个参数也是一个 long(目前它是一个 int)并且 Object[]
应该都是 Long[]
将数据拆分成多行可能更容易发现错误并使代码更易读:
Object[][] data = new Object[][]{
{new Long[]{1L,3L,4L,5L},1},
{new Object[]{2l,3l,6l,78l,90l},30},
{new Object[]{3l,78l,4l,3l},4},
{new Object[]{4l,545l,56l,3l},3},
{new Object[]{4l},3},
{null,null}
};
基本上,我正在尝试使用 junit4 参数进行试验。我不清楚为什么我将 null 作为 LongMathAddTest 构造函数的参数。
谢谢 GC
@RunWith(value = Parameterized.class)
public class LongMathAddTest {
@Parameters
public static Iterable<Object[]> data()
{
Object[][] data = new Object[][]{{new Long[]{1L,3L,4L,5L},1},{new Object[]{2l,3l,6l,78l,90l},30},{new Object[]{3l,78l,4l,3l},4},{new Object[]{4l,545l,56l,3l},3},{new Object[]{4l},3},{null,null}};
return Arrays.asList(data);
}
private Long numbers[];
private Long total;
public LongMathAddTest(Long numbers[],Long total) {
this.numbers=numbers;
this.total=total;
}
是不是因为你最后一个参数组是{null,null}
?
此外,当我按原样尝试 运行 你的代码时,我得到了类型不匹配的 IllegalArgumentExceptions,你必须确保你的第二个参数也是一个 long(目前它是一个 int)并且 Object[]
应该都是 Long[]
将数据拆分成多行可能更容易发现错误并使代码更易读:
Object[][] data = new Object[][]{
{new Long[]{1L,3L,4L,5L},1},
{new Object[]{2l,3l,6l,78l,90l},30},
{new Object[]{3l,78l,4l,3l},4},
{new Object[]{4l,545l,56l,3l},3},
{new Object[]{4l},3},
{null,null}
};