我想在java.i中为以下函数编写一个测试,想要模拟数组的创建。
public File[] myFunc()
{
File[] array = new File[2];
return array;
}
我使用powermock java编写了以下测试:
@Test
public void test1()
{
File f1 = createMock(File.class);
File[] files = new File[]{f1};
expectNew(File[].class).andReturn(fArray);
replayAll();
File[] res = myclass.myFunc();
verifyAll();
assertEquals(f1, res[0]);
}
它会抛出异常,并显示以下消息:
org.powermock.reflect.exceptions.ConstructorNotFoundException: No constructor found in class java.io.file with parameter types:<none>
答案 0 :(得分:0)
异常已经说明了:你试图创建一个File实例而不指定构造函数参数,但是没有没有java.io.File类参数的构造函数。异常的堆栈跟踪将告诉您尝试的代码位置。我猜,它是File f1 = createMock(File.class);
。检查powermock文档以了解备选方案。
答案 1 :(得分:0)
因为没有值,所以模拟这个数组的创建是没有意义的。一个更简洁的测试是:
@Test
public void test1() {
File[] result = myclass.myFunc();
assertEquals(2, result.length);
for (File f : result) {
assertNull(f);
}
}