在尝试将参数与junit4一起使用时,我在构造函数中得到一个null参数

在尝试将参数与junit4一起使用时,我在构造函数中得到一个null参数,junit,junit4,Junit,Junit4,基本上,我正在尝试使用junit4参数进行实验。我不清楚为什么要将null作为LongMathAddTest构造函数的参数 谢谢 GC @RunWith(值=参数化的.class) 公共类LongMathAddTest{ @参数 公共静态可编辑数据() { 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},

基本上,我正在尝试使用junit4参数进行实验。我不清楚为什么要将null作为LongMathAddTest构造函数的参数

谢谢 GC

@RunWith(值=参数化的.class)
公共类LongMathAddTest{
@参数
公共静态可编辑数据()
{
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},3},3},3},{new Object;
返回数组.asList(数据);
}
私人长号码[];
私人长总;
公共LongMathAddTest(长数字[],长总数){
这个。数字=数字;
这个.总计=总计;
}

是因为最后一个参数组是
{null,null}

另外,当我尝试按原样运行您的代码时,我得到了类型不匹配的IllegalArgumentException,您必须确保您的第二个参数也是一个长参数(当前是一个int),并且
对象[]
应该都是长的[]

通过跨多行拆分数据,可能更容易发现错误并使代码更清晰:

 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}
                    };

从技术上讲,{null,null}是有效的且有效的。您可以将null传递给参数为Long[]的函数。但是,关于第二个参数,您是对的。它是int类型,而不是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}
                    };