這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
go 單元測試
概述
go 提供了自動化的測試的包 testing,
假設我們有一個檔案youfile.go,那麼建立測試檔案的名字為 yourfile_test.go,這個檔案中有測試函數,形式如下:
func TestXxx(*testing.T)
其中 TestXxx 中 Xxx 的第一個字母 X 必須是大寫字母。
將你的源檔案 yourfile.go 和 yourfile_test.go 放在同一個目錄下。
使用 go test 命令運行
執行個體
這裡使用 https://github.com/golang/example/tree/master/stringutil 的檔案測試
stringutil 目錄下有兩個檔案:reverse.go 和 reverse_test.go
reverse.go
package stringutil// Reverse returns its argument string reversed rune-wise left to right.func Reverse(s string) string { r := []rune(s) for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 { r[i], r[j] = r[j], r[i] } return string(r)}
reverse_test.go
package stringutilimport "testing"func TestReverse(t *testing.T) { for _, c := range []struct { in, want string } { {"Hello, world", "dlrow ,olleH"}, {"Hello, 世界", "界世 ,olleH"}, {"", ""}, } { got := Reverse(c.in) if got != c.want { t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want) } }}
運行結果
[stringnutil]# go testPASSok stringutil 0.002s
參考文獻
pkg/testing