capypad
0 Tage Serie
go / beginner
Snippet

Grundlegende Tests in Go schreiben

Go bietet integrierte Testunterstützung durch das testing-Paket. Testdateien werden mit der Endung _test.go benannt. Testfunktionen beginnen mit dem Präfix Test und erhalten ein *testing.T-Argument. Die Methode t.Errorf() markiert einen Test als fehlgeschlagen, ermöglicht aber die weitere Ausführung. Verwende t.Run() für Untertests, um verwandte Testfälle sauber zu organisieren.

snippet.go
go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package main
 
import "testing"
 
func Add(a, b int) int {
return a + b
}
 
func TestAdd(t *testing.T) {
result := Add(2, 3)
expected := 5
 
if result != expected {
t.Errorf("Add(2, 3) = %d, expected %d", result, expected)
}
}
 
func TestAddNegative(t *testing.T) {
result := Add(-5, 3)
expected := -2
 
if result != expected {
t.Errorf("Add(-5, 3) = %d, expected %d", result, expected)
}
}
Erklärung
1
func TestAdd(t *testing.T)
Testfunktion erhält testing.T Parameter - t Parameter steuert die Testausführung
2
t.Errorf("...", result, expected)
Errorf protokolliert Fehlermeldung, ohne die Testausführung zu stoppen
3
t.Run("subtest name", func(t *testing.T) { })
Untertests mit t.Run() gruppieren verwandte Testfälle mit beschreibenden Namen
4
testing.T
Der Typ testing.T stellt Methoden zum Protokollieren und Steuern des Testflusses bereit