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

标签 java nullpointerexception mockito powermock

在模拟我的 File 类后,返回的对象始终为 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。它不期待一个类,它期待实际的实例。

试试这个:

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

参见:Mockito.anyString()

关于java - 为什么在模拟后返回对象时会出现 NullPointerException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31517937/

相关文章:

java - 无法使用 PreparedStatement 的 getGeneratedKeys() 在 Java 中找到生成的 key

java - 线程停止时无法结束工作流程

android - 传递结果失败 ResultInfo{who=null, request=100, result=-1, data=Intent

Java HashMap get方法空指针异常

java - 使用模拟对方法进行单元测试

java - 尝试编译hadoop mapreduce示例时出现gcj错误

c# - 是否有使用 Java、C#、Python 或 Ruby 编写的 Google Contacts API 的 Hello World 示例?

android createBitmap NullPointerException异常

java - 运行测试时,模拟类永远不会给出空指针

java - Mockito 的问题