測試
Test 代碼測試
func TestAdd(t *testing.T) {
tests := []struct{a, b, c int}{
{1, 2, 3},
{4, 5, 6},
{123, 345, 468},
{1, 345, 468},
}
for _, tt :=range tests{
if actual := add(tt.a, tt.b); actual!=tt.c{
t.Errorf("add(%d, %d); get %d; expected %d\n", tt.a, tt.b, actual, tt.c)
}
}
}
Benchmark 性能測試
性能數(shù)據(jù)分析
測試代碼
func BenchmarkAdd(b *testing.B){
inA, inB:=123, 345
outC:=468
// 之前操作不計(jì)入計(jì)時
b.ResetTimer()
for i:=0;i<b.N;i++ {
actual := add(inA, inB)
if actual != outC {
b.Errorf("add(%d, %d); get %d; expected %d\n",
inA, inB, actual, outC)
}
}
}
命令行操作
// 運(yùn)行測試
go test -bench . -cpuprofile cpu.out
// 分析輸出的測試數(shù)據(jù)文件`cpu.out`
go tool pprof cpu.out
// 交互頁面輸入web生成svg分析數(shù)據(jù)
// 需要下載工具并配置環(huán)境變量