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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top