尝试将参数与 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}
                    };