为什么在模拟后返回对象时会出现 NullPointerException?
Why do I get a NullPointerException when returning an object after mocking?
在模拟我的 File
class 之后,返回的对象总是 null
。为什么?
PowerMockito.whenNew(File.class).withArguments(String.class).thenReturn(configFile);
configFile
是一个 File
,在测试函数中是这样创建的:
@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
不正确。它不期待 class,它期待实际实例。
试试这个:
PowerMockito.whenNew(File.class)
.withArguments(Mockito.anyString())
.thenReturn(configFile);
在模拟我的 File
class 之后,返回的对象总是 null
。为什么?
PowerMockito.whenNew(File.class).withArguments(String.class).thenReturn(configFile);
configFile
是一个 File
,在测试函数中是这样创建的:
@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
不正确。它不期待 class,它期待实际实例。
试试这个:
PowerMockito.whenNew(File.class)
.withArguments(Mockito.anyString())
.thenReturn(configFile);