Go语言主要支持下列几种测试方式:
一、单元测试
Go语言使用go test
命令进行单元测试。
测试文件格式为:xxx_test.go。
使用testing
包中的方法进行断言。
测试函数格式:
func TestXXX(t *testing.T){
// ...
}
运行测试:
go test
二、基准测试
使用go test -bench= .
运行基准测试。
测试函数格式:
func BenchmarkXXX(b *testing.B){
for i := 0; i < b.N; i++ {
// ...
}
}
三、表驱动测试
通过数据表驱动的方式来进行测试。
定义测试用例:
var tests = []struct {
name string
want string
}{
{name: "test1", want: "result1"},
{name: "test2", want: "result2"},
}
然后进行循环测试:
for _, tt := range tests {
if got := Function(tt.name); got != tt.want {
t.Errorf("%q. Function() = %q, want %q", tt.name, got, tt.want)
}
}
四、性能测试
使用testing.B
来实现简单的性能测试。
声明变量:
var n int
const max = 10000
声明函数:
func BenchmarkSimple(b *testing.B) {
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
// do something
}
})
}