golang單元測試之生成二進位制測試檔案

2021-10-05 05:32:06 字數 1160 閱讀 8523

一、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,簡而言之就是可以通過注入我們所期望返回的資料,或者我們所...