Golang 测试有哪几种方式?

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
        }
    })
}