Ich erstelle ein File-Mock-Objekt mit Mockito, das als Verzeichnis zum Speichern einer neuen Datei verwendet wird.Mock-Dateiklasse und NullPointerException
Folder folder = Mockito.mock(File.class);
File file = new Agent().createNewFile(folder, "fileName");
und in meinem Agenten Klasse:
public File createNewFile(File folder, String filename){
return new File(folder, "testfile");
}
Aber ich bin eine Nullpointer bei der Initialisierung Block Datei erhalten, wenn innerhalb createNewFile
Methode, um die neue Datei zu erstellen:
java.lang.NullPointerException at java.io.File.<init>(File.java:308)
I Ich denke, es passiert, weil File keinen leeren Konstruktor hat. Wenn also das Objekt verspottet wird, bleibt ein interner Zustand null.
Bin ich die falsche Herangehensweise und spotte das File folder
Objekt? Mein Ziel ist es, einige Einschränkungen vor dem Erstellen der neuen Datei zu überprüfen, aber ich möchte nicht auf einen vorhandenen realen Ordner im Dateisystem angewiesen sein.
Vielen Dank.
"Ich denke, es passiert, weil Datei keinen leeren Konstruktor hat" Ich bin nicht vertraut mit Mockito, aber das ist wahrscheinlich der Fall. Das Fehlen eines Konstruktors mit Parametern ist sinnvoll, da das Javadoc angibt, dass Datei "eine abstrakte Darstellung von Datei- und Verzeichnispfadnamen" ist. Daher müsste Datei eine bestimmte Datei auf das Host-System verweisen, aber nicht "physisch" repräsentieren und einfach Datei-E/A-Operationen ausführen. http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html –