package main
import (
"testing"
"fmt"
)
func testPrint(t *testing.T) {
ret := PrintMain()
if ret == 0 {
t.Errorf("error")
}
fmt.Println(ret)
}
func testPrint2(t *testing.T) {
ret := PrintMain()
if ret == 0 {
t.Errorf("error")
}
ret++
fmt.Println(ret)
}
func TestAll(t *testing.T){
t.Run("testPrint",testPrint)
t.Run("testPrint2",testPrint2)
}
func TestMain(m *testing.M){
fmt.Println("Tests begins")
//m.Run()
}
1.go的test一般以xxx_test.go为文件名,xxx并没有特别要求是要实测的文件名
2.tes文件里要测试的函数要大写Testxxx(t* testing.T)或者Testxxx(b* testing.B)
3.t.Errorf("")为打印错误信息,并且当前test case会被跳过
4.t.SkipNow()跳过当前test,并且直接按PASS处理继续下一个test
5.使用t.Run来执行subtests可以做到控制test输出以及test的顺序
6.TestMain作为初始化test , 并且使用m.Run()来调用其他tests可以完成一些需要初始化操作的testing,比如数据库链接,文件打开,REST服