Beim Testen von Go-Funktionseinheiten gibt es zwei Hauptstrategien für die Fehlerbehandlung: 1. Stellen Sie den Fehler als einen bestimmten Wert des Fehlertyps dar, der zur Bestätigung des erwarteten Werts verwendet wird. 2. Verwenden Sie Kanäle, um Fehler an die Testfunktion zu übergeben , das zum Testen von gleichzeitigem Code geeignet ist. In einem praktischen Fall verwenden Sie die Fehlerwertstrategie, um sicherzustellen, dass die Funktion bei negativer Eingabe 0 zurückgibt.
Unit-Tests sind ein wichtiger Schritt, um die Robustheit und Zuverlässigkeit Ihres Codes sicherzustellen. In Go können Unit-Tests mit dem Paket testing
durchgeführt werden, das mehrere Strategien zur Fehlerbehandlung enthält. testing
包来执行单元测试,其中包含处理错误的几种策略。
Go 中有两种处理错误的主要策略:
1. 错误值
将错误表示为 error
Es gibt zwei Hauptstrategien zur Fehlerbehandlung in Go:
1 Fehlerwerte
Stellen Sie Fehler als spezifische Werte vom Typerror
dar. Um diese Methode in Unit-Tests zu verwenden, können Sie Fehler auf erwartete Werte anwenden: func TestMyFunction(t *testing.T) { err := myFunction() if err != nil { t.Errorf("myFunction returned an unexpected error: %v", err) } }
2 Fehlerkanäle
🎜🎜Verwenden Sie Kanäle, um Fehler an Testfunktionen zu übergeben. Dies ist nützlich zum Testen von gleichzeitigem Code, da mehrere Fehler gleichzeitig beobachtet werden können: 🎜func TestMyConcurrentFunction(t *testing.T) { done := make(chan error) go func() { done <- myConcurrentFunction() }() select { case err := <-done: if err != nil { t.Errorf("myConcurrentFunction returned an unexpected error: %v", err) } case <-time.After(time.Second): t.Errorf("myConcurrentFunction did not complete within the timeout") } }
func sum(numbers []int) int { total := 0 for _, num := range numbers { if num < 0 { return 0 } total += num } return total }
func TestSum(t *testing.T) { tests := []struct { input []int result int }{ {[]int{1, 2, 3}, 6}, {[]int{0, 0, 0}, 0}, {[]int{-1, 0, 1}, 0}, } for _, test := range tests { result := sum(test.input) if result != test.result { t.Errorf("sum(%v) returned %d, expected %d", test.input, result, test.result) } } }
Das obige ist der detaillierte Inhalt vonFehlerbehandlungsstrategien für Go-Funktionseinheitentests. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!