函数测试
以下形式的函数签名将被go test命令当做单元测试方法
func TestXxx(*testing.T)
按照Go语言的习惯,把一个go文件的测试代码放在相同的的package下,起名称为 xxx_test.go,```go test```命令会自动识别,在正式编译的时候会忽略掉这样的文件。
运行```go help test```会了解更多。
函数性能测评(benchmark)
用以下形式命名的函数被当成benchmark(性能评测)
func BenchmarkXxx(*testing.B)
类似于这样的代码就可以评测每次循环花费的时间
func BenchmarkHello(b *testing.B) {
for i := 0; i < b.N; i++ {
fmt.Sprintf("hello")
}
}
一个特殊的测试函数是TestMain,如果它存在则所有的测试函数的执行都是通过调用它来实现,函数签名形式如下:
func TestMain(m *testing.M)
TestMain典型的代码是:
func TestMain(m *testing.M) {
// setup
// call flag.Parse() here if TestMain uses flags
os.Exit(m.Run())
// teardown
}
testing.T 与 testing.B 的常用函数说明
testing.T/B.Fail -> mark the function as having failed
testing.T/B.FailNow -> mark the function as having failed and stop execution
testing.T/B.Error -> Log + Fail
testing.T/B.Fatal -> Log + FailNow
网友评论