单元测试
1.要点
第一:单元测试的时候,如果有一些打印log信息,我们运行xxx_test.go是输出不出来的,此时需要使用:
go test xxx_test.go -v
使用-v参数可以帮助解决此问题。
第二:单测覆盖率,覆盖率可以简单理解为进行单元测试mock的时候,能够覆盖的代码行数占总代码行数的比率,当然是高一点要好些。可以通过-cover指定
go test xxx_test -v -cover
2.基准测试
基准测试函数名字必须以Benchmark开头,代码在xxx_test.go中。具体如下:
func BenchmarkComplex(t *testing.B) {
for i := 0; i < t.N; i++ {
fmt.Sprintf("hello")
}
}
运行:
go test -benchmem -run=. -bench=.
3.mock/stub测试
gomock是官方提供的mock框架,同时有mockgen工具来辅助生成测试代码。