capypad
0 Tage Serie
go / intermediate
Snippet

Implementierung von tabellengesteuerten Tests

Tabellengesteuertes Testen ist ein Go-Idiom, bei dem Testfälle als Slice anonymer Structs definiert werden. Dies erleichtert das Hinzufügen neuer Szenarien und sorgt für eine konsistente Testlogik.

snippet.go
go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
func TestAdd(t *testing.T) {
tests := []struct {
a, b, want int
}{
{1, 2, 3},
{0, 0, 0},
{-1, 1, 0},
}
 
for _, tt := range tests {
got := Add(tt.a, tt.b)
if got != tt.want {
t.Errorf("Add(%d, %d) = %d; want %d", tt.a, tt.b, got, tt.want)
}
}
}
Erklärung
1
struct { a, b, want int }
Definiert die Struktur für Eingabeparameter und das erwartete Ergebnis.
2
range tests
Iteriert durch jeden definierten Testfall in der Tabelle.
3
t.Errorf(...)
Meldet einen Fehler, erlaubt dem Loop aber, mit anderen Testfällen fortzufahren.