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 stringutil
import "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 test
PASS
ok stringutil 0.002s
参考文献
有疑问加站长微信联系(非本文作者)