我正在使用Mockito创建一个File模拟对象,该对象将用作存储新文件的目录。
Folder folder = Mockito.mock(File.class);
File file = new Agent().createNewFile(folder, "fileName");在我的Agent类中:
public File createNewFile(File folder, String filename){
return new File(folder, "testfile");
}但是在createNewFile方法中创建新文件时,我在文件的初始化块得到了一个NullPointerException:
java.lang.NullPointerException at java.io.File.<init>(File.java:308)我认为这是因为File没有任何空的构造函数,所以当模拟对象时,一些内部状态仍然为空。
我模拟File folder对象的方法是错误的吗?我的目标是在创建新文件之前检查一些约束,但我不想依赖于文件系统中现有的真实文件夹。
谢谢。
发布于 2010-08-19 02:02:12
您需要为folder定义getPath()的行为,因为它在File类中被内部调用。
你可以这样做:
File folder = Mockito.mock(File.class);
when(folder.getPath()).thenReturn("C:\temp\");
File file = new Agent().createNewFile(folder, "fileName");只有在你没有创建新文件而只是调用new File之前,它才会工作。
https://stackoverflow.com/questions/3515011
复制相似问题