首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >模拟文件类和NullPointerException

模拟文件类和NullPointerException
EN

Stack Overflow用户
提问于 2010-08-19 01:47:49
回答 1查看 13.6K关注 0票数 10

我正在使用Mockito创建一个File模拟对象,该对象将用作存储新文件的目录。

代码语言:javascript
运行
复制
Folder folder = Mockito.mock(File.class);
File file = new Agent().createNewFile(folder, "fileName");

在我的Agent类中:

代码语言:javascript
运行
复制
public File createNewFile(File folder, String filename){
    return new File(folder, "testfile");
}

但是在createNewFile方法中创建新文件时,我在文件的初始化块得到了一个NullPointerException:

代码语言:javascript
运行
复制
java.lang.NullPointerException at java.io.File.<init>(File.java:308)

我认为这是因为File没有任何空的构造函数,所以当模拟对象时,一些内部状态仍然为空。

我模拟File folder对象的方法是错误的吗?我的目标是在创建新文件之前检查一些约束,但我不想依赖于文件系统中现有的真实文件夹。

谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2010-08-19 02:02:12

您需要为folder定义getPath()的行为,因为它在File类中被内部调用。

你可以这样做:

代码语言:javascript
运行
复制
File folder = Mockito.mock(File.class);
when(folder.getPath()).thenReturn("C:\temp\");
File file = new Agent().createNewFile(folder, "fileName");

只有在你没有创建新文件而只是调用new File之前,它才会工作。

票数 9
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3515011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档