十、单元测试与基准测试

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