测试
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