Golang-Testtemp-Verzeichnis

8

Ich habe eine einfache Funktion, die eine Konfigurationsdatei als JSON analysiert. Ich möchte einen Test schreiben, der einige statische Beispielkonfigurationsdateien verwendet und sie analysiert oder die Beispiele während des Tests erstellt und versucht, sie zu analysieren.

Es ist nicht ganz notwendig auf die Frage, aber hier ist der Grundcode:

%Vor%

und der Test:

%Vor%

Das heißt, meine spezifischen Fragen sind:

  • Gibt es einen geeigneten Platz für statische Assets (wie Beispielkonfigurationsdateien), die nur für Tests gelten?
  • Während der Testausführung gibt es einen ordentlichen (plattformübergreifend, wird mit 'sauber machen' aufgeräumten) Ort zum Ausschreiben temporärer Dateien?

(Hinweis: Ich benutze die meisten meiner Sachen unter Linux für Staging und Produktion und Mac für lokale Entwickler - also funktioniert / tmp / als Temp-Dir für Tests in der Praxis. Aber ich frage mich, ob es einen besseren Weg gibt. ..)

BEARBEITEN: Beendet mit diesem Ansatz für den Test:

%Vor%

Aber auch der andere Vorschlag, dass LoadMainSettings eine io.Reader anstelle von string akzeptiert, ist ebenfalls eine gute Idee.

    
Brad Peabody 29.09.2013, 18:46
quelle

2 Antworten

8

Nur um zu vergleichen, was Sie mit ioutil.TempDir haben, sehen Sie, wie die Dinge mit io.Reader aussehen:

%Vor%

Insbesondere ändern wir das Argument von einer path -Zeichenfolge in eine src io.Reader -Instanz und ersetzen die ioutil.ReadFile durch eine ioutil.ReadAll .

Der Testfall, den Sie geschrieben haben, ist dann etwas kürzer, weil wir auf Dateioperationen verzichten können:

%Vor%     
dyoo 30.09.2013, 05:05
quelle
8

Sie könnten ioutil.TempDir oder TempFile aus demselben Paket verwenden.

    
Ask Bjørn Hansen 29.09.2013 21:51
quelle

Tags und Links