在go的pkg库里提供了一个单元测试的框架testing,并提供了一个测试工具gotest
规则如下:
如果我们有一个文件add.go,这其对应的测试文件名为add_test.go
在add_test.go中,引入testing库,然后添加测试方法
测试方法的函数必须是如下形式
func TestXXX(t *testing.T) {
//....
}
而且其中第一个'X'还不能是小写字母,如果在测试方法中调用了testing库中的T类的Error,Fail,Fatal等方法则表示发生错误,测试不通过
比如我们有如下文件add.go
package add
func add(a, b int) int {
return a+b
}
编写如下测试文件:
package add
func TestAdd(t *testing.T) {
if add(1,1) != 2 {
t.Error("1+1!=2")
}
}
然后我们执行如下命令:
gotest add_test.go
则在一堆编译运行指令后,会看到最后一行显示为:
PASS
也可以选择写Makefile,那样就可以直接运行
gotest
进行测试,但是有一点需要注意,Makefile中的GOFILES列表里不需要包含*_test.go文件,gotest程序会自动包含,否则会出现重定义错误
有疑问加站长微信联系(非本文作者)