十、单元测试与基准测试
Go 提供了 test 工具用于代码的单元测试,test 工具会查找包下以_test.go 结尾的文件,调用测试文件中以 Test 或 Benchmark 开头的函数并给出运行结果
单元测试指的是功能测试
基准测试指的是性能测试
1. Test 函数
测试函数需要导入 testing 包,并定义以 Test 开头的函数,参数为 testing.T 指针类型,在测试函数中调用函数进行返回值测试,当测试失败可通过 testing.T 结构体的 Error*函数抛出错误
测试文件名为go_test.go
2.测试覆盖率
这里的测试覆盖率表示测试代码 能测试代码的百分比
go test -v -coverprofile=cover.out test/gotest
这里的100%表示测试代码能测试多少代码
go tool cover -html cover.out
这个可以用web页面来观察 绿色代表可以测试的,如果没有被覆盖那么会是红色
3.基准测试
基准测试常用于代码性能测试,函数需要导入 testing 包,并定义以Benchmark 开头的函数,参数为 testing.B 指针类型,在测试函数中循环调用函数多次
测试文件名为bench_xxx.go