模拟我的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

最佳答案

您使用的withArguments错误。它不期望类,而是期望实际实例。

尝试这个:

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


参见:Mockito.anyString()

07-24 09:15