golang学习笔记之单元测试和压力测试
文件结构:
math.go:待测试的包
math_test.go:单元测试
bench_test.go:压力测试
math.go
package main
func Add(a int, b int) int {
return a + b
}
func Sub(a int, b int) int {
return a - b
}
单元测试:
math_test.go
package main
import "testing"
func TestAdd(t *testing.T) {
a := 10
b := 20
c := Add(a, b)
if c != 30 {
t.Fatalf("add func error, c = %d", c)
}
t.Logf("a = %d b = %d sum = %d\n", a, b, c)
}
func TestSub(t *testing.T) {
a := 50
b := 20
c := Sub(a, b)
if c != 30 {
t.Fatalf("sub func error, c = %d", c)
}
t.Logf("a = %d b = %d sub = %d\n", a, b, c)
}
在文件所在的路径下,命令行执行
//go test -v 显示详细过程,也可以配合-run使用 //go test -run TestAdd 只测试TestAdd方法 //go test -run TestSub 只测试TestSub方法 go test
压力测试:
bench_test.go
package main
import "testing"
//注意命名规范 Benchmark+首字母大写的方法名 参数固定
func BenchmarkAdd(b *testing.B) {
for i := 0; i < b.N; i++ {
a := 10
b := 20
Add(a, b)
}
}
//注意命名规范 Benchmark+首字母大写的方法名 参数固定
func BenchmarkSub(b *testing.B) {
for i := 0; i < b.N; i++ {
a := 10
b := 20
Sub(a, b)
}
}
在文件所在的路径下,命令行执行
//go test -bench BenchmarkAdd 只压测BenchmarkAdd方法 //go test -bench BenchmarkSub 只压测BenchmarkSub方法 //go test -bench . 点表示测试该路径下所有压力测试 go test -bench .
浙公网安备 33010602011771号