Das Testen benutzerdefinierter Funktionen umfasst das Erstellen von Testdateien, das Definieren von Testfunktionen, das Schreiben von Testfällen und das Ausführen von Behauptungen. Das Debuggen eines fehlgeschlagenen Tests umfasst das Aktivieren von Debugging-Informationen, die Verwendung eines Debuggers und das Festlegen von Haltepunkten.
So testen und debuggen Sie die Implementierung benutzerdefinierter Go-Funktionen
In Go ist das Testen und Debuggen benutzerdefinierter Funktionen von entscheidender Bedeutung, um deren Korrektheit und Robustheit sicherzustellen. In diesem Artikel wird der Prozess des Unit-Testens und Debuggens benutzerdefinierter Funktionen mithilfe des integrierten Test-Frameworks und der Debugging-Tools von Go vorgestellt.
Unit-Tests
Schritt 1: Erstellen Sie eine Testdatei
Für die Funktionmyfunc
, die Sie testen möchten, erstellen Sie eine Testdatei mit dem Namenmyfunc_test.go
.myfunc
,创建一个名为myfunc_test.go
的测试文件。
步骤 2:定义测试函数
在测试文件中,使用func TestMyfunc
为要测试的函数定义一个测试函数。测试函数应以Test
开头,后跟要测试的函数名。
步骤 3:编写测试用例
在测试函数中,使用t.Run
为不同的测试用例添加嵌套测试函数。每个嵌套函数接收一个testing.T参数,它提供了用来报告错误和失败的断言方法。
步骤 4:执行断言
使用testing
包中提供的断言函数(如t.Equal
、t.Error
和t.FailNow
)来验证测试用例的预期输出或行为。
实战案例:测试一个计算字符串长度的函数
func TestStrlen(t *testing.T) { t.Run("Empty string", func(t *testing.T) { t.Equal("", strLen("")) }) t.Run("Non-empty string", func(t *testing.T) { t.Equal(5, strLen("Hello")) }) }
调试
如果测试失败或函数运行不符合预期,则可以使用 Go 的调试工具进行调试。
步骤 1:开启调试模式
使用-gcflags="all=-N -l"
Schritt 2: Definieren Sie die Testfunktion
In der Testdatei verwenden Siefunc TestMyfunc
, um eine Testfunktion für die Funktion zu definieren, die Sie testen möchten. Testfunktionen sollten mit
Test
beginnen, gefolgt vom Namen der zu testenden Funktion.
Schritt 3: Testfälle schreiben
Verwenden Sie in der Testfunktiont.Run
, um verschachtelte Testfunktionen für verschiedene Testfälle hinzuzufügen. Jede verschachtelte Funktion erhält einen
testing.T-Parameter, der Assertionsmethoden zum Melden von Fehlern und Ausfällen bereitstellt.
Schritt 4: Behauptungen ausführen
Verwenden Sie Behauptungsfunktionen, die im Pakettesting
bereitgestellt werden (z. B.
t.Equal
,
t.Error
). und
t.FailNow
), um die erwartete Ausgabe oder das erwartete Verhalten des Testfalls zu überprüfen.
Praktischer Fall: Testen einer Funktion, die die Länge einer Zeichenfolge berechnet
$ delve debug app (delve) b fibonacci # 设置断点 (delve) c # 继续执行 (delve) next # 单步执行 ... (delve) p fibonacci(5) # 检查变量值
Debugging
Wenn der Test fehlschlägt oder die Funktion nicht wie erwartet ausgeführt wird, können Sie zum Debuggen die Debugging-Tools von Go verwenden. Schritt 1: Debug-Modus aktivieren Kompilieren Sie das Programm mit dem Flag-gcflags="all=-N -l"
, um Debug-Informationen zu aktivieren. Schritt 2: Verwenden eines DebuggersStarten Sie einen Debugger (z. B. Delve oder GDB) und hängen Sie ihn an das laufende Programm an. Schritt 3: Haltepunkte festlegen und Variablen überprüfenVerwenden Sie den Debugger, um Haltepunkte festzulegen und Variablenwerte zu überprüfen, während die Funktion ausgeführt wird. Schritt 4: Schritt für Schritt durch den Code Verwenden Sie die Einzelschrittfunktion des Debuggers, um Zeile für Zeile durch den Code zu gehen und die Variablenwerte nach jedem Schritt zu überprüfen. Praktischer Fall: Debuggen einer Funktion, die die Fibonacci-Folge berechnet Verwenden Sie delve zum Debuggen: rrreee
Das obige ist der detaillierte Inhalt vonSo testen und debuggen Sie die Implementierung einer benutzerdefinierten Golang-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!