Wie Einheit Testmethoden, die Dateien erstellen und lesen

8

Ich habe zwei statische Methoden void implementiert, die Dateien erstellen und Dateien lesen. Und ich möchte die Methoden testen, aber ich weiß nicht, wie man Methoden testet, die mit Dateien arbeiten. Was ist der beste Weg, das zu tun?

Ich benutze Java und JUnit.

    
djihad 20.05.2011, 16:27
quelle

2 Antworten

14

Am besten wäre es, wenn Sie Ihre Methoden so umgestalten, dass sie mit Eingabe / Ausgabe-Streams und nicht mit Dateien direkt arbeiten. Auf diese Weise können Sie String-Reader / Writer problemlos in Komponententests an sie übergeben (vorausgesetzt, sie arbeiten mit Textdateien - wenn nicht, benötigen Sie die entsprechende Art von Streams).

Wenn Sie direkt mit Dateien arbeiten, werden Ihre Komponententests komplizierter, da sie zusätzlichen Setup- / Teardown-Code zum Erstellen und Bereinigen des Testverzeichnisses sowie Lesen / Schreiben von Dateien in jedem Test benötigen, was die Tests verlangsamt. Außerdem eröffnet es die Möglichkeit zu Problemen wie das Fehlen eines Schreibrechts in einem bestimmten Verzeichnis (z. B. weil es in einem von einem anderen Entwickler gestarteten Testlauf erstellt wurde), einen vollen Plattenfehler usw. Es ist besser, die Komponententests selbst zu führen - so viel wie möglich enthalten.

    
Péter Török 20.05.2011 16:32
quelle
3

Sie können ein Test / Ressourcen-Verzeichnis mit Dateien speziell zum Testen erstellen. Der Nachteil davon ist, dass Ihr Code in der Lage sein muss, dass der Pfad übergeben wird, was keine allzu große Hürde sein sollte, selbst wenn der Code nicht so entworfen wurde.

Also in deinem Test hättest du sowas wie

%Vor%

Beachten Sie, dass wenn Sie absolute Pfade verwenden, unterschiedliche Entwickler unterschiedliche Pfade zu den Ressourcen haben. Daher müssen Sie möglicherweise Konfigurationsdateien verwenden ...

    
hvgotcodes 20.05.2011 16:29
quelle

Tags und Links