Класс фиктивного файла и исключение NullPointerException

Я создаю объект-макет файла с Mockito, который будет использоваться как каталог для хранения нового файла.

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 в блоке инициализации File при создании нового файла внутри метода createNewFile :

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

Я думаю, что это происходит потому, что File не у него нет пустого конструктора, поэтому при издевательстве над объектом какое-то внутреннее состояние остается нулевым.

Неправильно ли я насмехаюсь над объектом Папка с файлами ? Моя цель - проверить некоторые ограничения перед созданием нового файла, но я не хочу зависеть от существующей реальной папки в файловой системе.

Спасибо.

9
задан manolowar 18 August 2010 в 17:47
поделиться

1 ответ

Вам необходимо определить поведение getPath () для папки, когда она вызывается изнутри. в классе File.

Вы можете сделать это так:

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

Это будет работать только до тех пор, пока вы действительно не создадите новый файл, а только вызовете new File.

8
ответ дан 4 December 2019 в 22:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: