package main
import (
"testing"
)
func Test(t *testing.T) {
test := []struct {
s string
answer int
}{
{"abc", 3},
{"abcabcadcd", 4},
{"吃葡萄不吐葡萄皮", 0},
}
for _, tt := range test {
receive := lengthSubstr(tt.s)
if receive != tt.answer {
t.Errorf("got %d for input %s;"+"expected %d",
receive, tt.s, tt.answer)
}
}
}
代码覆盖率测试##
go test -cover
代码压力测试##
go test -bench.
func Tests(b *testing.B) {
s := "吃葡萄不吐葡萄皮"
answer := 5
for i := 0; i < b.N; i++ {
receive := lengthSubstr(s)
if receive != answer {
b.Errorf("got %d for input %s;"+"expected %d",
receive, s, answer)
}
}
}
谈谈怎么优化性能
通过下面的命令生成一个cpu.out的文件(二进制)
go test -bench. -cpuprofile cpu.out
next
go tool pprof cpu.out
运行后会有一个命令行 可以通过help来查看具体有哪些命令
输入web会生成详细的图,但是这里说我没有Graphviz 安装一个就好
aaaa.png