Golang 中的單元測試是使用標準庫 testing 來實現的,編寫一個單元測試的步驟:
1、建立測試檔案:在 Go 專案的原始碼目錄下建立一個新的檔案(和被測程式碼檔案在同一個包),以 _test.go 為字尾名。例如,要測試net包中 dial.go 中的方法,在 net 包中建立一個名字為 dial_test.go 檔案。
2、匯入 testing 包:在測試檔案中匯入testing包,以使用相關的的函式和工具。
3、編寫測試函式:在測試檔案中,編寫一個以 Test 為字首的函式,後面跟上一個或多個字元或字元組合來標識測試用例的名稱(一般使用被測的函式名稱),引數必須是 t *testing.T。
4、編寫測試程式碼:如果認為測試不透過,當被測程式功能與預期不符,呼叫 t.Error 或 t.Errorf 方法記錄錯誤;如果出現了使測試無法繼續進行的錯誤,呼叫tFatal 和 t.Fatalf;如果測試函式體正常執行結束,沒有異常,則測試透過。
5、執行單元測試命令:
-
執行當前目錄中的所有測試
- go test
-
執行並顯示詳細資訊
- go test -v
-
執行特定包中的測試
- go test ./mypackage
- go test $GOPATH/src/myproject/mypackage
-
並行執行測試
- go test -parallel=4
-
生成測試覆蓋率報告
- go test -cover
-
生成並輸出覆蓋率報告到檔案
- go test -coverprofile=coverage.out
- go tool cover -func=coverage.out
- go tool cover -html=coverage.out
-
執行特定名稱的測試
- go test -run TestFunction
- go test -run Example