GO测试
测试
Go拥有一个轻量级的测试框架,它由 go test
命令和 testing
包构成。
你可以通过创建一个名字以 _test.go
结尾的,包含名为 TestXXX
且签名为 func (t *testing.T)
函数的文件来编写测试。 测试框架会运行每一个这样的函数;若该函数调用了像 t.Error
或 t.Fail
这样表示失败的函数,此测试即表示失败。
我们可通过创建文件 $GOPATH/src/github.com/user/stringutil/reverse_test.go
来为 stringutil
添加测试,其内容如下:
package stringutil import "testing" func TestReverse(t *testing.T) { cases := []struct { in, want string }{ {"Hello, world", "dlrow ,olleH"}, {"Hello, 世界", "界世 ,olleH"}, {"", ""}, } for _, c := range cases { got := Reverse(c.in) if got != c.want { t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want) } } }
接着使用 go test
运行该测试:
$ go test github.com/user/stringutil ok github.com/user/stringutil 0.165s
同样,若你在包目录下运行 go
工具,也可以忽略包路径
$ go test ok github.com/user/stringutil 0.165s
五、远程包
若你在包的导入路径中包含了代码仓库的URL,go get
就会自动地获取、 构建并安装它:
$ go get github.com/golang/example/hello $ $GOPATH/bin/hello Hello, Go examples!
$ go get github.com/golang/example/hello $ $GOPATH/bin/hello Hello, Go examples!
T