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
本文介绍Go语言中的单元测试方法,包括测试文件的命名规范、测试函数的定义方式及如何使用gotest命令运行测试。通过一个具体的例子展示了如何为Reverse函数编写测试用例,并给出测试结果。
756

被折叠的 条评论
为什么被折叠?



