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:
(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.
Nur um zu vergleichen, was Sie mit ioutil.TempDir
haben, sehen Sie, wie die Dinge mit io.Reader
aussehen:
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%Sie könnten ioutil.TempDir oder TempFile aus demselben Paket verwenden.