go / intermediate
Snippet
Registrieren von verzögerten Bereinigungen in Unit-Tests mit der Cleanup-Methode
Im Gegensatz zu defer-Anweisungen, die am Ende des aktuellen Blocks ausgeführt werden, registriert `t.Cleanup` Funktionen zur Bereinigung, die erst nach Beendigung des Tests (und aller Subtests) laufen. Dies ist besonders nützlich für Testhelfer, da der Setup-Code nicht denselben Gültigkeitsbereich wie der Testrunner teilt.
snippet.go
go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package mainimport ("fmt""testing")func TestDatabaseConnection(t *testing.T) {dbName := "test_db"t.Cleanup(func() {fmt.Printf("Cleaning up database: %s\n", dbName)})fmt.Println("Database setup complete.")}
Erklärung
1
t.Cleanup(func() {
Registriert eine Funktion, die nach Beendigung des Tests automatisch ausgeführt wird.
2
fmt.Printf("Cleaning up database: %s\n", dbName)
Die Bereinigungslogik, die garantiert ausgeführt wird, selbst wenn der Test fehlschlägt oder vorzeitig abbricht.