Go 單元測試的方法

2021-10-01 16:47:49 字數 2079 閱讀 6558

go提供了一套輕量級的測試框架。

需要進行單元測試的檔案命明規則如下:在需要測試的包下面建立以「_test」結尾的go檔案。如下圖,在包******math下建立了add.go和stack.go兩個go檔案,它們各自的測試檔案是add_test.go和stack_test.go。

go的單元測試函式分為功能測試函式和效能測試函式。這裡先說功能性測試函式。

測試函式的宣告要以test***的形式開頭,並且形參為 (t *testing.t)。比如兩個檔案和其對應的測試檔案。在測試函式中,可以使用t.errorf列印錯誤資訊。

package ******math

func

add(a, b int

)int

package ******math

import

"testing"

func

testadd

(t *testing.t)

}

package ******math

import

"fmt"

type stack struct

}func

(s *stack)

createstack()

*stack

return s

}func

(s *stack)

push

(a inte***ce

)func

(s *stack)

pop(

)(a inte***ce

,error

error

) a = s.arr[

len(s.arr)-1

] s.arr = s.arr[

:len

(s.arr)-1

]return

//return a,error

}

package ******math

import

"testing"

//可以對方法分開測試,

//也可以對方法進行整體測試,這個時候需要考慮整體的輸出結果,包括前面的處理,不是只考慮方法中

var stack stack

func

teststack_createstack

(t *testing.t)

}func

teststack_push

(t *testing.t)

}func

teststack_pop

(t *testing.t)

}

在命令列測試的時候,可以在ide中進行測試,也可以在通過命令列測試,這裡主要講命令列測試。

在測試之前首先要確保將專案根目錄路徑加入了gopath,可以使用go env命令檢視是否設定了。比如我的專案名為fristgo,則gopath=c:\users\27124\ideaprojects\fristgo。

在單元測試的時候,可以對整個包測試,對某個檔案測試,對某個檔案的某個方法測試。下面分別講下具體方法。

(1)對包進行測試

之後進入到剛設定的目錄中,在該路徑的任何子路徑下都能對整個包進行測試,比如這裡對simplmath進行測試。

對整個包中所有測試檔案進行測試格式:go test + 包名

(2)對某個檔案進行測試

在對檔案進行測試的時候,要注意兩點:

(3)對某個檔案的某個函式進行測試

在對某個檔案的某個方法進行測試的時候,也許要注意兩點:

go單元測試

go本身提供了一套輕量級的測試框架。mytest工程下有兩個檔案 main.go package main func main func add a,b int intmain test.go package main import testing func testadd1 t testing.t...

Go單元測試

對包含網路請求和響應的函式進行單元測試需要我們模擬客戶端請求和服務端返回。以乙個登入模組為例,main.go檔案如下 其中的重點是利用 http.newrequest構造乙個虛擬的http get請求,再用httptest.newrecorder 建立http.responesewriter,模擬真...

Go單元測試

go單元測試 1.使用testing框架 1.1.go test 如果執行正確,無日誌.錯誤時,會輸出日誌 1.2.go test v 執行正確或錯誤都會輸出日誌 1.3.當出現錯誤時,可以使用t.fatalf 來格式化輸出錯誤資訊,並退出日誌 1.4.t.logf 方法可以輸出相應的日誌 1.5....