Introduction
- 單元測試往往是針對一個模塊或是針對一個函數來進行測試
- 確認函數運行的結果是正確無誤的
- 引出單元測試
- Golang testing測試框架,可以很好的解決問題
- Go 自帶輕量級的測試框架testing和自帶
go test
命令來實現單元測試和性能測試- 與其他語言測試框架類似,可以對相應函數撰寫測試用例
- https://studygolang.com/static/pkgdoc/pkg/testing.htm
規範
- 測試用例文件名必須以
_test.go
結尾。- 例如
cal_test.go
cal
不是固定的根據自己的需求定義
- 該文件放在與被測試的包相同的包中即可
- 該文件將被排除在正常程序包之外
- 例如
- 測試用例函數必須以Test開頭,一般來說就是Test+被測試的函數名
- 被測試函數名的第一個字母一定要大寫
- 例如
TestAddUpper
、TestSub
- 例如
- 被測試函數名的第一個字母一定要大寫
TestAddUpper(t *testing.T)
的形式參數必須是*testing.T
- 一個測試文件中,可以有多個測試用例函數
- 比如
TestAddUpper
、TestSub
- 比如
- 運行測試指令
go test
- 運行正確時,無日誌輸出
- 錯誤時,會輸出日誌
go test -v
- 對同一個包中的test文件全部進行測試
- 運行正確或錯誤時,都會輸出日誌
- 當出現錯誤時,可以使用
t.Fatalf
來格式化輸出錯誤信息,並退出程序 t.Logf
方法,可以直接輸出相應的日誌- 測試函數時,並沒有放在
main
函數中執行 PASS
表示測試成功,FAIL
表示測試失敗- 測試單個文件,一定要帶上被測試的原文件
go test -v cal_test.go cal.go
- 測試單個方法
go test -v -test.run TestAddUpper
範例
1 | package main |