转载 于 Go语言基础之单元测试
Split包
package split_string
import "strings"
// Split 字符串
func Split(str string, sep string) []string {
var res = make([]string, 0, strings.Count(str, sep))
idx := strings.Index(str, sep)
sep_len := len(sep)
for idx >= 0 {
res = append(res, str[:idx])
str = str[idx+sep_len:]
idx = strings.Index(str, sep)
}
res = append(res, str)
return res
}
Split包 测试组
// split/split_test.go
package split_string
import (
"testing"
)
func BenchmarkSplit(b *testing.B) {
for i := 0; i < b.N; i++ {
Split("沙河有沙又有河", "沙")
}
}
上课笔记
1.基准测试以Benchmark
为前缀,需要一个*testing.B
类型的参数b
,基准测试必须要执行b.N
次,这样的测试才有对照性,b.N
的值是系统根据实际情况去调整的,从而保证测试的稳定性。
2.func BenchmarkSplit(b *testing.B)
:必须以Benchmark
开头,同时参数是固定为b *testing.B
3.通过执行go test -bench=Split
命令执行基准测试