Avatar ·

Wie richtet man eine Testumgebung (setup) in Go mit dem Paket testing richtig ein?

Hallo zusammen! Ich habe angefangen, Go zu lernen und versuche, Unit-Tests für mein Projekt zu schreiben. Ich habe eine Funktion, die mit einer Datenbank arbeitet und mehrere Abfragen ausführt. Für das Testen muss ich vor jedem Test Daten vorbereiten: Tabellen erstellen, Testdatensätze einfügen und nach dem Test alles bereinigen.\n\nIch kenne die Funktionen TestMain und t.Run, verstehe aber nicht, wie ich sie richtig für Setup/Teardown verwenden soll. In anderen Sprachen (Java, Python) bin ich an Annotationen wie @Before/@After oder pytest-Fixtures gewöhnt. In Go gibt es das nicht, und ich habe das Gefühl, dass ich denselben Code in jeden Test kopiere.\n\nHier ist ein Beispiel meines aktuellen Ansatzes (der mir nicht gefällt):\n\n```go\nfunc TestGetUser(t *testing.T) {\n db := setupDB() // erstelle DB, Tabellen, füge Daten ein\n defer teardownDB(db) // lösche Tabellen