为什么在模拟后返回对象时会出现NullPointerException?

时间:2015-07-20 13:35:09

标签: java nullpointerexception mockito powermock

在模拟我的null课程后,返回的对象始终为File。为什么呢?

PowerMockito.whenNew(File.class).withArguments(String.class).thenReturn(configFile);

configFileFile,在测试函数中就是这样创建的:

@Test
public void loadJSONConfigFileTest() throws Exception {
   final File configFile = folder.newFile("config.json");
}

不是null。应该返回configFile的代码:

final File configFile = new File(pathFile);

由于带有参数的File.class被模拟,当执行此行时,将返回configFile。但它是null

1 个答案:

答案 0 :(得分:2)

您错误地使用了withArguments。它不期待一个类,它期待实际的实例。

试试这个:

PowerMockito.whenNew(File.class)
      .withArguments(Mockito.anyString())
      .thenReturn(configFile);

请参阅:Mockito.anyString()