go语言单元测试demo

来源:互联网 发布:网络电影《引魂灯》 编辑:程序博客网 时间:2024/06/16 05:17

文件mymath.go

package mymathfunc Add(a, b int) int {return a + b}func Max(a, b int) (ret int) {ret = aif b > a {ret = b}return}

 

测试文件 mymath_test.go(所有测试文件都必须以*_test.go结尾)

package mymath_testimport ("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