Ich versuche, einige Komponententests für ein Java-Servlet zu schreiben, die Dateien schreiben und löschen können. Ich habe config.properties-Dateien für meine Entwickler- und Prod-Builds sowie eine, die in Test/Ressourcen lebt, die nur während Tests aufgerufen wird. Ich schreibe in eine temporäre Datei, die später gelöscht wird.Erstellen und Löschen von Dateien in Maven Test/Ressourcen-Verzeichnis
canceled.filepath = src/test/resources/Cancel.txt temp.filepath = src/test/resources/Cancel_temp.txt
Mein Problem ist, dass ich einen Fehler aus dem Servlet geworfen bekommen sagen, kann ich Lösche die temporäre Datei nicht. Ich vermute, dass dies auf einen Zugriffsfehler zurückzuführen ist. Gibt es irgendwo, wo ich diese Dateien machen kann, so dass meine Unit Tests durchführt und volle Erlaubnis zum Schreiben/Löschen hat?
Dank
Warum die temporäre Datei im temporären Standard nicht erstellen Verzeichnis Ihres Systems? ['Files.createTempFile'] (https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createTempFile-java.nio.file.Path-java.lang. String-java.lang.String-java.nio.file.attribute.FileAttribute ...-). Mit JUnit können Sie auch einen ['TemporaryFolder'] (http://junit.org/junit4/javadoc/4.12/org/junit/rules/TemporaryFolder.html) verwenden. – Tunaki
Die Konfigurationsdatei gibt dem Servlet den Pfad, in dem wir uns gerade befinden möchte Dateioperationen durchführen. Das Servlet selbst schreibt und löscht die Dateien. Ich habe versucht, ihm einen Pfad zu einem temporären Verzeichnis zu geben, aber das Löschen wird immer noch nicht abgeschlossen. –
Das Servlet sollte nur durch die 'ServletConfig' konfiguriert werden. Wenn Sie dies tun, können Sie in Ihrem Test die Methode 'Servlet.init (ServletConfig)' aufrufen und eine Testkonfiguration angeben. –