Go-单元测试
单元测试
-
测试用例的命名必须是以
xxx_test.go
的格式 -
测试用例函数必须以
TestXxx
开头,一般来说是Test
+被测试函数名,且必须为大驼峰命名 -
TestAdd(t *tesing.T)
的形参类型必须是*tesing.T
-
运行测试用例指令
- cmd>
go test
运行正确,无日志;错误时,会输出日志 - cmd>
go test -v
运行不管正确还是错误,都输出日志
- cmd>
-
出现错误时,使用
t.Fatalf
来格式化输出错误信息,并退出程序;t.Logf
方法可以输出响应日志
代码示例
- cal.go
package uintTest
import "time"
func Add(a, b int) int {
time.Sleep(time.Second * 1)
return a + b
}
- cal_test.go
package uintTest
import "testing"
func TestAdd(t *testing.T) {
res := Add(1, 2)
if res != 3 {
t.Fatalf("Add() 执行错误")
}
t.Logf("Add() 执行正确...")
}
运行过程
程序在执行main
函数前,先检测是否存在xxx_test.go
文件的存在,若有则加载testing
框架,然后执行以TestXxx
命名的测试函数。