你能告诉我为什么测试不起作用吗?我得到了:
java.lang.IllegalStateException:在尝试创建类类的对象时[Ljava.lang.Integer;找不到参数匹配(类型)参数的构造函数。
我无法找到JUnitParamsRunner使用数组作为参数的示例。
@RunWith(JUnitParamsRunner.class)
public class StatisticsUtilsParameterizedTest {
private Object[] getValues() {
Object[] objects = new Object[2];
objects[0] = new Integer[]{1, 2, 3};
objects[1] = 2;
return objects;
}
@Test
@Parameters(method = "getValues")
public void shouldCalcAverageOK(Integer[] arg, int expected) {
int average = StatisticsUtils.getAverage(arg);//requires an array
assertEquals(expected, average);
}
}
有一种方法可以使它与JUnitParams一起使用吗?
答案 0 :(得分:1)
试试这个:
private Object[] getValues() {
return $(
$($(1,2,3), 2),
$($(2,3,4), 4)
);
}
或者你试图写的方式
private Object[] getValues() {
Object[] objects = new Object[2];
objects[0] = new Object[]{new Integer[]{1, 2, 3},2};
objects[1] = new Object[]{new Integer[]{2, 3, 4},4};
return objects;
}
希望这有帮助。