Go语言中带有一个轻量级的测试框架testing 和go test 命令来实现单元测试及性能测试。单元测试可以解决
- 确保每个函数都是可运行且结果正确
- 确保代码性能完好
- 单元测试可以及时发现程序设计或实现的逻辑错误,使问题及早暴露,便于问题的定位解决,而性能测试的重点在于发现程序设计上的一些问题,让程序能够在高并发的情况下还能保持稳定
注意:
- 文件名必须以
xxx_test.go 方式命名 - 测试函数名格式:
func Testxxx(t *Testing.T) {} (一定要以Testxxx作为函数名,t *Testing.T作为参数) - 测试的文件和测试文件要在同一包下
执行测试:
go test
go test -v
go test -v xxx.go xxx.go
go test -v -文件名.run 方法名
data_test.go
package test
import (
"testing"
)
func TestAdd(t *testing.T) {
result := Add(1, 2)
if result != 3 {
t.Fatalf("sum err: 期望值=%v 实际值=%v\n", 3, result)
}
}
func TestMinus(t *testing.T) {
result := minus(1, 2)
if result != -1 {
t.Fatalf("sum err: 期望值=%v 实际值=%v\n", -1, result)
}
}
testdata.go
package test
func Add(a, b int) int {
return a + b
}
func minus(a, b int) int {
return a - b
}
执行:
itzhuzhu@itzhuzhudeMacBook-Pro test % go test -v
=== RUN TestAdd
--- PASS: TestAdd (0.00s)
=== RUN TestMinus
--- PASS: TestMinus (0.00s)
PASS
ok basics/src/day11/test 0.489s
itzhuzhu@itzhuzhudeMacBook-Pro test %
|