命令行用 go test -v cal_test.go的代码是:
package main import( _ "fmt" "testing" ) //编写测试用例,去测试addUpper是否正确 func TestAddUpper(t *testing.T){ res := addUpper(10) if res != 55{ //传统形式 //fmt.Printf("addUpper(10) 期望值 %v 实际值 %v\n", 55, res) //testing中的T结构化有Fatalf函数 //输出日志,并且退出 t.Fatalf("addUpper(10)错误 期望值 %v 实际值 %v\n", 55, res) } //如果正确,输出日志 t.Logf("addUpper(10) 执行正确。。。") res2 := getSub(15, 5) t.Logf("getSub(15,5)执行正确...%v",res2) }sub_test.go代码是:
package main import( _ "fmt" "testing" ) //编写测试用例,去测试addUpper是否正确 func TestGetSub(t *testing.T){ res2 := getSub(15, 5) t.Logf("getSub(15,5)执行正确...%v",res2) }cal.go代码是:
package main func addUpper(n int) int { res := 0 for i:=1; i<=n ; i++{ res += i } return res } func getSub(n1 int, n2 int) int{ return n1-n2 }三个文件同属于一个main包 首先加载testing框架,之后将以_test.go为后缀的文件引入,隐藏了的main()主函数调用Test开头的测试方法,测试方法再调用相同包下的go文件,我的理解是这样的。 测试结果如下: