要点
Go的自动化测试框架比JUnit、PyUnit等更加轻量级。要点如下:
- 测试代码以xxx_test.go方式命名
- 测试代码中import “testing”
- 测试函数形如 func Testxyz(t *Testing.T) {…}
- 执行测试:go test
示例
比较要创建一个mymath package。
mymath.go
package mymath
func Add(x, y int) int {
return x + y
}
func Minus(x, y int) int {
return x - y
}
mymath_test.go
package mymath_test
import "mymath"
import "testing"
func TestAdd(t *testing.T) {
ret := mymath.Add(2, 3)
if ret != 5 {
t.Error("Expected 5, got ", ret)
}
}
func TestMinus(t *testing.T) {
ret := mymath.Minus(2, 3)
if ret != -1 {
t.Error("Expected -1, got ", ret)
}
}
目录文件结构
D:\examples>tree /F .
文件夹 PATH 列表
卷序列号为 5645-602F
D:\EXAMPLES
│ helloworld.exe
│ helloworld.go
│ math.txt
│ the_shape.go
│
└─the_go_path
├─pkg
│ └─windows_amd64
│ mymath.a
│ shape.a
│ shape2.a
│
└─src
├─mymath
│ mymath.go
│ mymath_test.go
│
├─shape
│ the_shape.go
│
└─shape2
the_shape.go
D:\examples>
go test
这里略过go install。
mymath.go有错误的情况
D:\examples\the_go_path\src\mymath>go test
--- FAIL: TestMinus (0.00s)
mymath_test.go:16: Expected -1, got 5
FAIL
exit status 1
FAIL mymath 0.425s
D:\examples\the_go_path\src\mymath>
测试用例全部通过的情况
D:\examples\the_go_path\src\mymath>go test
PASS
ok mymath 0.369s
D:\examples\the_go_path\src\mymath>
有疑问加站长微信联系(非本文作者)