单元测试
Go本身提供了一套轻量级的测试框架。
一、功能测试
- 测试文件名必须为xxx_test.go
- 里面的测试方法必须为TestXXX(t *testing.T)
MyTest工程下有两个文件
main.go
package main
func main() {
}
func add(a, b int) int {
return a+b
}
main_test.go
package main
import "testing"
func TestAdd1(t *testing.T) {
s := add(1, 2)
if s != 3 {
t.Errorf("value %v error!", s)
}
}
go test 工程名:执行测试方法
C:\worker\go\src> go test MyTest
ok MyTest 0.207s
二、性能测试
- 测试文件名必须为xxx_test.go
- 测试方法名必须为BenchmarkXXX(b *testing.B)
MyTest工程下有两个文件
main.go
package main
import "time"
func main() {
}
func add(a, b int) int {
return a+b
}
func MySleep() {
time.Sleep(time.Second*1)
}
main_test.go
package main
import "testing"
func TestAdd1(t *testing.T) {
s := add(1, 2)
if s != 3 {
t.Errorf("value %v error!", s)
}
}
func BenchmarkMySleep(b *testing.B) {
b.StopTimer() //暂停计时器
b.StartTimer() //开始计时器
MySleep()
}
go test -test.bench=".*" //启动性能分析
C:\worker\go\src\MyTest>go test -test.bench=”.*”
goos: windows
goarch: amd64
pkg: MyTest
BenchmarkMySleep-8 1 1000782000 ns/op
PASS
ok MyTest 1.119s
参考:
《go语言编程》