一: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 了解。
被测示例:
判断回文数

  1. package huiwen
  2. func ishuiwenshu(s string)bool {
  3. s1 := []rune(s)
  4. for i:=0; i<=len(s1)/2; i++ {
  5. if s[i] != s[len(s1)-i-1] {
  6. return false
  7. }
  8. }
  9. return true
  10. }

测试例子:

  1. package huiwen
  2. import (
  3. "encoding/xml"
  4. "fmt"
  5. "testing"
  6. )
  7. func Ishuiwen(t *testing.T) {
  8. type test struct {
  9. s string
  10. want bool
  11. }
  12. tests := map[string]test{
  13. "sample": {"121",true},
  14. "sample1": {"aaa",false},
  15. "sample2": {"bbb",true},
  16. }
  17. for name,value := range tests{
  18. t.Run(name, func(t *testing.T) {
  19. got := Ishuiwen(value.s)
  20. if got != value.want {
  21. t.Errorf(value.want,got)
  22. }
  23. })
  24. }
  25. }