表格驅動的測試在 Go 單元測試中透過表格定義輸入和預期輸出簡化了測試案例編寫。語法包括:1. 定義一個包含測試案例結構的切片;2. 循環遍歷切片並比較結果與預期輸出。 在實戰案例中,對字串轉換大寫的函數進行了表驅動的測試,並使用 go test 運行測試,列印通過結果。
表驅動的測試是一種測試方法,它使用一個表來定義多個輸入和預期輸出。這可以簡化和加快編寫測試案例的過程,因為我們只需要定義表本身,而不是為每個測試案例編寫單獨的函數。
表格驅動的測試語法如下:
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
是一個結構體切片,它定義了要測試的輸入和預期輸出。 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
:
go test -v
這將列印以下輸出:
=== RUN TestUpperCase --- PASS: TestUpperCase (0.00s) PASS ok github.com/user/pkg 0.005s
以上是如何在 Golang 單元測試中使用表格驅動的測試方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!