Tabellengesteuertes Testen vereinfacht das Schreiben von Testfällen beim Go-Unit-Testen, indem Eingaben und erwartete Ausgaben mit Tabellen definiert werden. Die Syntax umfasst: 1. Definieren Sie ein Segment, das die Testfallstruktur enthält. 2. Durchlaufen Sie das Segment und vergleichen Sie die Ergebnisse mit der erwarteten Ausgabe. Im konkreten Fall wurde ein tabellengesteuerter Test für die Funktion zum Konvertieren von Zeichenfolgen in Großbuchstaben durchgeführt, und go test wurde verwendet, um den Test auszuführen und das bestandene Ergebnis auszugeben.
Tabellengesteuertes Testen ist eine Testmethode, die eine Tabelle verwendet, um mehrere Eingaben und erwartete Ausgaben zu definieren. Dies vereinfacht und beschleunigt das Schreiben von Testfällen, da wir nur die Tabelle selbst definieren müssen, anstatt für jeden Testfall eine separate Funktion zu schreiben.
Die tabellengesteuerte Testsyntax lautet wie folgt:
import "testing" func TestTableDriven(t *testing.T) { tests := []struct { input string expected string }{ {"a", "A"}, {"b", "B"}, {"c", "C"}, } for _, test := range tests { result := UpperCase(test.input) if result != test.expected { t.Errorf("Expected %q, got %q", test.expected, result) } } }
tests
ist ein Strukturabschnitt, der die zu testende Eingabe und die erwartete Ausgabe definiert. tests
是一个结构体切片,它定义了要测试的输入和预期输出。range tests
循环遍历 tests
切片中的每个测试用例。result
是要测试的函数的输出。if result != test.expected
检查结果是否与预期输出匹配。以下是一个将字符串转换为大写的函数的表驱动的测试:
import ( "testing" "strings" ) func TestUpperCase(t *testing.T) { tests := []struct { input string expected string }{ {"a", "A"}, {"b", "B"}, {"c", "C"}, } for _, test := range tests { result := strings.ToUpper(test.input) if result != test.expected { t.Errorf("Expected %q, got %q", test.expected, result) } } }
要运行测试,请使用 go test
range tests
durchläuft jeden Testfall im tests
-Slice.
result
ist die Ausgabe der zu testenden Funktion. if result != test.expected
Prüft, ob das Ergebnis mit der erwarteten Ausgabe übereinstimmt.
go test -v
go test
:🎜 === RUN TestUpperCase --- PASS: TestUpperCase (0.00s) PASS ok github.com/user/pkg 0.005s
Das obige ist der detaillierte Inhalt vonWie verwende ich die tabellengesteuerte Testmethode beim Golang-Unit-Testen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!