天天看點

testing - 測試基本使用接口testing - 測試基本使用接口寫一個基本的測試用例testing的測試用例形式testing的變量testing包内的結構testing的通用方法

當你寫完一個函數,結構體,main之後,你下一步需要的就是測試了。testing包提供了很簡單易用的測試包。

測試檔案的檔案名需要以_test.go為結尾,測試用例需要以testxxxx的樣式存在。

比如我要測試utils包的sql.go中的函數:

就需要建立一個sql_test.go

測試用例有四種形式:

testxxxx(t testing.t) // 基本測試用例

benchmarkxxxx(b testing.b) // 壓力測試的測試用例

example_xxx() // 測試控制台輸出的例子

testmain(m *testing.m) // 測試main函數

給個example的例子:(example需要在最後用注釋的方式确認控制台輸出和預期是不是一緻的)

gotest的變量有這些:

test.short : 一個快速測試的标記,在測試用例中可以使用testing.short()來繞開一些測試

test.outputdir : 輸出目錄

test.coverprofile : 測試覆寫率參數,指定輸出檔案

test.run : 指定正則來運作某個/某些測試用例

test.memprofile : 記憶體分析參數,指定輸出檔案

test.memprofilerate : 記憶體分析參數,記憶體分析的抽樣率

test.cpuprofile : cpu分析輸出參數,為空則不做cpu分析

test.blockprofile : 阻塞事件的分析參數,指定輸出檔案

test.blockprofilerate : 阻塞事件的分析參數,指定抽樣頻率

test.timeout : 逾時時間

test.cpu : 指定cpu數量

test.parallel : 指定運作測試用例的并行數

b : 壓力測試

benchmarkresult : 壓力測試結果

cover : 代碼覆寫率相關結構體

coverblock : 代碼覆寫率相關結構體

internalbenchmark : 内部使用的結構

internalexample : 内部使用的結構

internaltest : 内部使用的結構

m : main測試使用的結構

pb : parallel benchmarks 并行測試使用結果

t : 普通測試用例

tb : 測試用例的接口

t結構内部是繼承自common結構,common結構提供集中方法,是我們經常會用到的:

當我們遇到一個斷言錯誤的時候,我們就會判斷這個測試用例失敗,就會使用到:

當我們遇到一個斷言錯誤,隻希望跳過這個錯誤,但是不希望标示測試用例失敗,會使用到:

當我們隻希望在一個地方列印出資訊,我們會用到:

當我們希望跳過這個用例,并且列印出資訊:

當我們希望斷言失敗的時候,測試用例失敗,列印出必要的資訊,但是測試用例繼續:

當我們希望斷言失敗的時候,測試用例失敗,列印出必要的資訊,測試用例中斷:

繼續閱讀