Golang testing 包详解
package main
import (
"fmt"
"testing"
)
// 示例函数,返回两个整数的和
func add(a, b int) int {
return a + b
}
// 测试函数,检查add函数是否正确工作
func TestAdd(t *testing.T) {
cases := []struct {
a, b, expect int
}{
{1, 2, 3},
{5, 6, 11},
{0, 0, 0},
{-1, 1, 0},
}
for _, c := range cases {
actual := add(c.a, c.b)
if actual != c.expect {
t.Errorf("add(%d, %d) = %d; expect %d", c.a, c.b, actual, c.expect)
}
}
}
func main() {
// 运行测试
testing.Main(
func(patters []string, matchFunc func(pat string, name string) (matched bool, shouldContinue bool)) *testing.M {
return testing.MainStart(patters, matchFunc, nil)
},
nil,
nil,
nil,
)
}
这段代码定义了一个简单的add
函数和一个测试函数TestAdd
,测试函数中使用了一个切片来定义不同的测试案例,并通过循环检查add
函数是否正确执行。如果有任何测试失败,t.Errorf
会被调用,并输出错误信息。这是Go语言中进行单元测试的一个基本示例。
评论已关闭