Heim > Artikel > Backend-Entwicklung > Testen und Debuggen von Golang-Funktionen
Funktionen in Golang testen: Erstellen Sie eine Testdatei mit der Endung _test.go. Deklarieren Sie eine Testfunktion mit dem Namen TestXXX, wobei XXX der Name der zu testenden Funktion ist. Verwenden Sie Behauptungen, um zu überprüfen, ob erwartete Ergebnisse mit tatsächlichen Ergebnissen übereinstimmen. Legen Sie Haltepunkte fest und verwenden Sie den Debugger, um Testfehler zu debuggen. Verwenden Sie tabellengesteuerte Test- und Abdeckungstools, um die Testeffizienz zu steigern.
Testen und Debuggen von Golang-Funktionen
In Golang ist das Testen eine wichtige Praxis, um die Zuverlässigkeit und Genauigkeit des Codes sicherzustellen. In diesem Tutorial erfahren Sie, wie Sie das integrierte Testframework von Golang zum Testen und Debuggen von Funktionen verwenden.
Funktionen testen
Um eine Funktion zu testen, müssen Sie eine neue Datei mit der Endung _test.go
erstellen. Diese Datei befindet sich im selben Paket wie die zu testende Funktion. Deklarieren Sie in der Testdatei eine Testfunktion mithilfe der Funktion TestXXX
des Pakets testing
, wobei XXX
der Name der zu testenden Funktion ist. Zum Beispiel: _test.go
结尾的新文件。该文件位于与被测函数相同的包中。在测试文件中,使用 testing
包的 TestXXX
函数声明一个测试函数,其中 XXX
是被测函数的名称。例如:
// my_function_test.go package mypackage import ( "testing" ) func TestAdd(t *testing.T) { // ... }
断言
在测试函数中,使用断言来验证预期结果与实际结果是否一致。testing
包提供了多种断言函数,例如:
t.Equal(a, b)
:验证 a
和 b
是否相等t.ErrorIs(err, expectedError)
:验证 err
和 expectedError
是否是相同的错误t.True(cond)
:验证 cond
为 true
实战案例
假设你有一个名为 add
的函数,该函数接受两个数字参数并返回它们的和。你可以编写以下测试函数来测试 add
// my_function_test.go import ( "testing" ) func TestAdd(t *testing.T) { tests := []struct { a, b int want int }{ {1, 2, 3}, {3, 4, 7}, {-1, -2, -3}, } 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) } } }
Assertion
Verwenden Sie in der Testfunktion Behauptungen, um zu überprüfen, ob die erwarteten Ergebnisse mit den tatsächlichen Ergebnissen übereinstimmen. Dastesting
-Paket bietet eine Vielzahl von Behauptungsfunktionen, wie zum Beispiel:
t.Equal(a, b)
: Verifizieren Sie a
und Ob b gleich istt.ErrorIs(err, erwartetError)
: Überprüfen Sie, ob err
und expectedError
gleich sind Fehler
t.True(cond)
: Stellen Sie sicher, dass cond
true
ist. add
s Funktion, die zwei numerische Argumente akzeptiert und deren Summe zurückgibt. Sie können die folgende Testfunktion schreiben, um die Funktion add
zu testen: 🎜rrreee🎜🎜Debugging🎜🎜🎜In Fällen, in denen Debugging-Tests fehlschlagen, können Sie den Debugger verwenden, indem Sie Haltepunkte im Quellcode festlegen. In IDEs wie VSCode können Sie einen Haltepunkt festlegen, indem Sie mit der rechten Maustaste auf eine Zeile im Code klicken und „Haltepunkt festlegen/entfernen“ auswählen. Wenn Code im Debugger ausgeführt wird, wird er an Haltepunkten angehalten, sodass Sie Variablen und Stack-Traces überprüfen können. 🎜🎜🎜Tipp🎜🎜🎜🎜Verwenden Sie tabellengesteuerte Tests, um das Testen mehrerer Eingabesätze zu vereinfachen. 🎜🎜Verwenden Sie Coverage-Tools, um sicherzustellen, dass der Testcode genügend Funktionslogik abdeckt. 🎜🎜Integrieren Sie Testcode mit kontinuierlichen Integrationssystemen, um bei Codeänderungen automatisch Tests auszuführen. 🎜🎜Das obige ist der detaillierte Inhalt vonTesten und Debuggen von Golang-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!