测试文件命名规则
xxx_test.go,xxx是需要测试的文件名称
单元测试: 可以测试代码是否可以正常运行
测试用例命名规范:TestXXX_YYY(t *testing.T) {} ,XXX是测试目标文件名,YYY是测试目标函数名
测试整个包
go test -v
测试单个文件
go test -v product_test.go
测试某个函数
go test -v -run 函数名 源文件
go test -v -run TestSend product_test.go # 如果有相似的函数,需要用 ^TestSend$来精准匹配
基准测试(压力测试): 基准测试可以测试一段程序的运行性能及耗费CPU的程度
测试用例命名规范:BenchmarkXXX_YYY(b *testing.B) {} ,XXX是测试目标文件名,是测试目标函数名
测试product_test.go中所有基准测试用例
# go test -bench=. product_test.go
执行product_test.go中的指定用例BenchmarkProduct_Send1
# go test -bench=BenchmarkProduct_Send1 product_test.go
# 在上面基础上测试100次:加--count=100
go test -bench=BenchmarkProduct_Send1 --count=100 product_test.go
goos: windows
goarch: amd64
cpu: Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz
BenchmarkProduct_Send-4 1000000000 0.0005046 ns/op
PASS
ok command-line-arguments 0.472s
1000000000 表示测试的次数,也就是 testing.B 结构中提供给程序使用的 N
0.0005046 ns/op 表示每一个操作耗费多少时间(纳秒)