Test-setup und teardown pro test in der go
Bin ich mit gehen Sie "testen" - Paket. Laufen meine tests wie unten.
func TestMain(m *testing.M) {
...
//Setup
os.Exit(m.Run())
//Teardown
}
Diesem läuft ein setup, bevor Sie einen test ausführen, und ein teardown, nachdem alle tests abgeschlossen sind. Und ich brauche diese, da das setup setzt die DB auf. Aber auch die, die ich brauche, und doch, um herauszufinden, eine Möglichkeit zum ausführen eines pro-test-setup/teardown. Für die unit tests, die ich laufen werde, möchte ich klar, die DB vor jedem test, so dass es keine Probleme mit dem Inhalt der DB verursachen damit unerwartetes Verhalten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie im Artikel "Gehen unit-test-setup und teardown" von Kare Nuorteva, Sie könnte verwenden Sie eine setup-Funktion, die zurückgibt... ein teardown-Funktion, um Sie zu verschieben.
Sehen diese gist:
Die setup-Funktion ist verantwortlich für die Definition und die Rückkehr der Abbau ein.
Für jeden test, beispielsweise in einem table-driven test-Szenario:
Können Sie in Erwägung ziehen, mit einer Tabelle der Funktionen subTestSetup, untertest und subTestTeardown vorbei an der db-Verbindung/andere gemeinsame Elemente in einer struct (subTestSetup zurückgeben kann dieses struct). Sie können möglicherweise die Wiederverwendung einiger Teile des setup - & reißen in verschiedenen Funktionen zu & halten Sie dieses modular wie Ihre Test-Anforderung wächst. Anruf zurückstellen subTestTeardown() vor dem Aufruf der untertest,, um sicherzustellen, reißen code ausgeführt wird, selbst wenn es irgendein Problem mit der untertest.