Unit-Testing Zu den Methoden zur Behandlung von Funktionsfehlern in der Go-Sprache gehören: Scheineingabe erstellen: Erstellen Sie ein Scheinobjekt mit kontrollierten Fehlern. Fehlermeldung bestätigen: Ordnen Sie die zurückgegebene Fehlermeldung der erwarteten Nachricht zu. Fehlerbedingungen abdecken: Schreiben Sie Testfälle für alle möglichen Fehlerbedingungen.
Einheitentests bei der Fehlerbehandlung von Go-Sprachfunktionen
Hintergrund
In der Go-Sprache werden Fehler in Funktionen durch Überprüfen von Werten vom Typ error
behandelt. Um eine korrekte Fehlerbehandlung sicherzustellen, ist es wichtig, Unit-Tests durchzuführen. error
类型的值来处理函数中的错误。为了确保错误处理的正确性,执行单元测试至关重要。
单元测试策略
对函数中的错误处理进行单元测试时,以下策略非常有效:
assert.Equal()
Erstellen Sie ein Mock als Eingabe: Erstellen Sie ein Mock-Objekt (z. B. Mock eines Dateisystems oder eines Netzwerkaufruf) geben diese Objekte kontrollierte Fehler zurück.
Fehlermeldungen bestätigen: Verwenden Sie eine Assertionsbibliothek wie assert.Equal()
, um zu überprüfen, ob die zurückgegebene Fehlermeldung mit der erwarteten Fehlermeldung übereinstimmt.
: Schreiben Sie Testfälle für jede mögliche Fehlersituation. Dadurch wird sichergestellt, dass die Fehlerbehandlungslogik in allen Fällen wie erwartet funktioniert.
Practical Case
🎜🎜 -Ansider für die folgende Funktion, die die Summe von zwei Zahlen berechnet: 🎜func Sum(a, b int) (int, error) { if a < 0 || b < 0 { return 0, errors.New("non-negative integers only") } return a + b, nil }
import ( "errors" "testing" ) func TestSum(t *testing.T) { tests := []struct { a, b int expected int err error }{ {a: 1, b: 2, expected: 3, err: nil}, {a: -1, b: 2, expected: 0, err: errors.New("non-negative integers only")}, } for _, tt := range tests { t.Run("test", func(t *testing.T) { sum, err := Sum(tt.a, tt.b) if sum != tt.expected { t.Errorf("Expected %d, got %d", tt.expected, sum) } if !errors.Is(err, tt.err) { t.Errorf("Expected error %q, got %q", tt.err, err) } }) } }
Das obige ist der detaillierte Inhalt vonUnit-Tests bei der Fehlerbehandlung von Golang-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!