单元测试
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语言编程》
本文介绍Go语言中单元测试和性能测试的基本用法。通过示例代码展示如何编写测试函数,包括功能测试和性能测试的方法。同时演示了如何运行这些测试。
894

被折叠的 条评论
为什么被折叠?



