一:Go 自带的 testing 包
testing 为 Go 语言 package 提供自动化测试的支持。通过 go test 命令,能够自动执行如下形式的任何函数:
func TestXxx(*testing.T)
注意:Xxx 可以是任何字母数字字符串,但是第一个字母不能是小写字母。
在这些函数中,使用 Error、Fail 或相关方法来发出失败信号。
要编写一个新的测试套件,需要创建一个名称以 _test.go 结尾的文件,该文件包含 TestXxx 函数,如上所述。 将该文件放在与被测试文件相同的包中。该文件将被排除在正常的程序包之外,但在运行 go test 命令时将被包含。 有关详细信息,请运行 go help test 和 go help testflag 了解。
被测示例:
判断回文数
package huiwen
func ishuiwenshu(s string)bool {
s1 := []rune(s)
for i:=0; i<=len(s1)/2; i++ {
if s[i] != s[len(s1)-i-1] {
return false
}
}
return true
}
测试例子:
package huiwen
import (
"encoding/xml"
"fmt"
"testing"
)
func Ishuiwen(t *testing.T) {
type test struct {
s string
want bool
}
tests := map[string]test{
"sample": {"121",true},
"sample1": {"aaa",false},
"sample2": {"bbb",true},
}
for name,value := range tests{
t.Run(name, func(t *testing.T) {
got := Ishuiwen(value.s)
if got != value.want {
t.Errorf(value.want,got)
}
})
}
}