clase File Mock y NullPointerException
Pregunta
Estoy creando un objeto de burla de archivos con Mockito que se utilizará como directorio para almacenar un archivo nuevo.
Folder folder = Mockito.mock(File.class);
File file = new Agent().createNewFile(folder, "fileName");
y dentro de mi clase Agente:
public File createNewFile(File folder, String filename){
return new File(folder, "testfile");
}
Pero me estoy poniendo una NullPointerException en el bloque de inicialización de archivo al crear el nuevo archivo dentro createNewFile
método:
java.lang.NullPointerException at java.io.File.<init>(File.java:308)
Creo que sucede porque el archivo no tiene ningún constructor vacío, por lo que cuando el objeto burlarse algún estado interno sigue siendo nula.
estoy tomando un enfoque equivocado burlarse del objeto File folder
? Mi objetivo es comprobar algunas limitaciones antes de crear el nuevo archivo, pero no quiere depender de una carpeta real que existe en el sistema de archivos.
Gracias.
Solución
Es necesario definir el comportamiento de getPath () para la carpeta, ya que se llama internamente en la clase de archivos.
Puede hacerlo como:
File folder = Mockito.mock(File.class);
when(folder.getPath()).thenReturn("C:\temp\");
File file = new Agent().createNewFile(folder, "fileName");
Se trabajará sólo hasta que realmente no crea un nuevo archivo, pero sólo llamar nuevo archivo.