一、golang單元測試規範介紹:
1、單元測試檔名稱:*_test.go;
2、單元測試檔案中,函式的名稱為:test***,其中***必須以大寫字母開頭;
二、當執行go test命令進行單元測試時,*_test.go檔案中要測試的函式沒在該檔案中定義,而是在其它原始檔(.go檔案)中定義的,需要把對應原始檔也作為go test命令的引數,比如原始碼檔案結構如下所示:
//原始檔:project/sum.go
package sum
func sum(num1, num2 int64) int64
// 單元測試檔案:project/sum_test.go
package sum
import "testing"
func testsum(t *testing.t)
雖然單元測試檔案(sum_test.go)和被測試函式(sum)在同乙個包下,但是通過命令列go test來執行但雲測試檔案時,執行:
go test sum_test.go //會報"undefined: sum"錯誤,即找不到sum函式的定義
正確方式為:
go test sum_test.go sum.go //(工作目錄為project時)
或者go test project //(工作目錄為../project時)**結構為project/sum.go、project/sum_test.go
三、單元測試檔案編譯為二進位制可執行檔案
命令列選項
含義描述
-c生成用於執行測試的可執行檔案,但不執行它。這個可執行檔案會被命名為「pkg.test」,其中的「pkg」即為被測試**包的匯入路徑的最後乙個元素的名稱。
-i安裝/重新安裝執行測試所需的依賴包,但不編譯和執行測試**。
-o指定用於執行測試的可執行檔案的名稱。追加該標記不會影響測試**的執行,除非同時追加了標記-c
或-i
。
-v輸出詳細的測試過程
// 命令
go test -c 原始碼檔案 //缺省會生成.test的可執行檔案
// 如果想要完整的單元測試結果
go test -v -o ***.test檔案
參考: golang 之單元測試
測試是自動化測試的簡稱,即編寫簡單的程式來確保程式 產品 在測試中針對特定輸入產生預期的輸出。go的測試方法看上去相對比較低階,它依賴於命令go test和一些能用go test執行的測試函式的編寫約定 go test 子命令是go語言包的測試驅動程式,這些包根據某些約定組織在一起。在乙個包目錄中,...
golang 單元測試
單元測試是質量保證十分重要的一環,好的單元測試不僅能及時地發現問題,更能夠方便地除錯,提高生產效率,所以很多人認為寫單元測試是需要額外的時間,會降低生產效率,是對單元測試最大的偏見和誤解 go 語言原生支援了單元測試,使用上非常簡單,測試 只需要放到以 test.go結尾的檔案中即可。golang的...
golang單元測試之mock
搞單元測試,如果碰到這些情況 1,乙個函式,內部包含了很多並且很深的呼叫,但是如果單單測這個函式,其實實現的功能很簡單。2,乙個函式,包含了其他還未實現的呼叫。3,函式內部對資料的要求極為苛刻。那麼這時候就可以考慮使用mock來處理。mock,簡而言之就是可以通過注入我們所期望返回的資料,或者我們所...