go语言代码测试

来源:互联网 发布:js文本框内容改变事件 编辑:程序博客网 时间:2024/04/28 15:23

在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程序会自动包含,否则会出现重定义错误