代码之家  ›  专栏  ›  技术社区  ›  manolowar

模拟文件类和NullPointerException

  •  9
  • manolowar  · 技术社区  · 14 年前

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

    Folder folder = Mockito.mock(File.class);
    File file = new Agent().createNewFile(folder, "fileName");
    

    在我的代理类中:

    public File createNewFile(File folder, String filename){
        return new File(folder, "testfile");
    }
    

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

    java.lang.NullPointerException at java.io.File.<init>(File.java:308)
    

    File folder 反对?我的目标是在创建新文件之前检查一些约束,但我不想依赖文件系统上现有的真实文件夹。

    非常感谢。

    1 回复  |  直到 14 年前
        1
  •  9
  •   Ankit Bansal    14 年前

    当文件夹在文件类中被内部调用时,需要为其定义getPath()的行为。

    你可以这样做:

    File folder = Mockito.mock(File.class);
    when(folder.getPath()).thenReturn("C:\temp\");
    File file = new Agent().createNewFile(folder, "fileName");