//導(dǎo)入mock相關(guān)包 //每個測試函數(shù)必須導(dǎo)入testing包 import ( "testing" . "github.com/golang/mock/gomock" "test/mock/db" ... ) //測試函數(shù)的名字必須以Test開頭朱嘴,可選的后綴名必須以大寫字母開頭 //其中t參數(shù)用于報告測試失敗和附加的日志信息厢呵。 func TestMyThing(t *testing.T) { //mock控制器 mockCtrl := gomock.NewController(t) defer mockCtrl.Finish() //mock對象創(chuàng)建時需要注入控制器,如果有多個mock對象則注入同一個控制器 mockObj := something.NewMockMyInterface(mockCtrl) //mock對象的行為注入 mockObj.EXPECT().SomeMethod(4, "blah") // pass mockObj to a real object and play with it. } gomock go test go test命令如果沒有參數(shù)指定包那么將默認采用當前目錄對應(yīng)的包(和go build命令一樣)席纽。我們可以用下面的命令構(gòu)建和運行測試。 參數(shù)-v可用于打印每個測試函數(shù)的名字和運行時間: 參數(shù)-run對應(yīng)一個正則表達式,只有測試函數(shù)名被它正確匹配的測試函數(shù)才會被go test測試命令運行:如:$ go test -v -run="French|Canal"