在尝试使用junit4的参数时,我在构造函数中获得了一个null参数

时间:2015-01-07 19:28:28

标签: junit 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;
    }

1 个答案:

答案 0 :(得分:0)

是因为您的上一个参数组是{null,null}吗?

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

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

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