Я создаю файл mockito с файлами Mockito, который будет использоваться в качестве каталога для хранения нового файла.Mock File class и NullPointerException
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)
I думаю, что это происходит потому, что у Файла нет никакого пустого конструктора, поэтому, когда насмехается над объектом, внутреннее состояние остается нулевым.
Я принимаю неправильный подход, издеваясь над объектом File folder
? Моя цель - проверить некоторые ограничения перед созданием нового файла, но я не хочу зависеть от существующей реальной папки в файловой системе.
спасибо.
«Я думаю, это происходит потому, что у файла нет пустого конструктора» Я не знаком с Mockito, но это, скорее всего, случай. Отсутствие конструктора с параметрами вроде имеет смысл, поскольку javadoc утверждает, что File является «абстрактным представлением путей к файлам и каталогам». Таким образом, File должен указать данный файл в хост-системе, но не представляет его «физически» и просто позволяет выполнять операции ввода-вывода файлов. http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html –