Go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语法、规则或工具。

go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内,所有以_test.go为后缀名的源代码文件都是go test测试的一部分,不会被go build编译到最终的可执行文件中。

*_test.go文件中有三种类型的函数,单元测试函数、基准测试函数和示例函数。

类型格式作用
测试函数函数名前缀为Test测试程序的一些逻辑行为是否正确
基准函数函数名前缀为Benchmark测试函数的性能
示例函数函数名前缀为Example为文档提供示例文档

go test命令会遍历所有的*_test.go文件中符合上述命名规则的函数,然后生成一个临时的main包用于调用相应的测试函数,然后构建并运行、报告测试结果,最后清理测试中生成的临时文件。

sum.go

package sum
// Add ...
func Add(i, n int) int {
    return i + n
}

sum_test.go

func TestAdd(t *testing.T) {
    got := Add(1, 2)    // 输出的值
    want := 3     // 想要的值
    if got != want {
        t.Error("test failed ")
    }
}

终端:go test

PASS    // 测试通过
ok      go/Sum  0.005s

子测试

性能基准测试

代码覆盖率

pprof进行性能调优

测试http

...