go语言单元测试demo
目录
go语言单元测试demo
文件mymath.go
package mymath
func Add(a, b int) int {
return a + b
}
func Max(a, b int) (ret int) {
ret = a
if b > a {
ret = b
}
return
}
测试文件 mymath_test.go(所有测试文件都必须以*_test.go结尾)
package mymath_test
import (
"mymath"
"testing"
)
type mathTest struct {
a, b, ret int
}
var addTest = []mathTest{
mathTest{4, 6, 10},
mathTest{5, 6, 11},
mathTest{2, -6, -4},
}
var maxTest = []mathTest{
mathTest{3, 5, 5},
mathTest{-3, 5, 5},
mathTest{-3, -5, -3},
}
func TestAdd(t *testing.T) {
for _, v := range addTest {
ret := mymath.Add(v.a, v.b)
if ret != v.ret {
t.Errorf("%d add %d, want %d, but get %d", v.a, v.b, v.ret, ret)
}
}
}
func TestMax(t *testing.T) {
for _, v := range maxTest {
ret := mymath.Max(v.a, v.b)
if ret != v.ret {
t.Errorf("the max number between %d and %d is want %d, but get %d", v.a, v.b, v.ret, ret)
}
}
}
执行 go test
PASS
ok myweb/lib/session 3.863s