Go拥有一个轻量级的测试框架,它由 go test 命令和 testing 包构成
hello.go 编写待测试的函数
package hello
import "log"
func main() {
log.Println("hello golang")
}
// 此函数一会用于测试
func add(a, b int) int {
// 故意写错, 返回的值多了1
return a + b + 1
}
在hello.go同级目录下创建hello_test.go文件:
package hello
import (
"testing"
)
func TestAdd(t *testing.T) {
got := add(20, 30)
expect := 50
if got != expect {
t.Errorf("got := add(20, 30) != 50")
}
}
执行测试命令, 此命令会遍历项目里的_test后缀文件进行执行:
go test
得到测试结果:
--- FAIL: TestAdd (0.00s)
hello_test.go:11: got := add(20, 30) != 50
FAIL
exit status 1
FAIL github.com/ymzuiku/hello 0.006s
如果把add函数的返回值改成正确的, 得到的测试结果:
PASS
ok github.com/ymzuiku/hello 0.006s