testing 測試基本使用介面

2021-09-23 20:04:34 字數 1470 閱讀 8121

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

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

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

func getone(db *sql.db, query string, args ...inte***ce{}) (map[string]byte, error) ()

if err != nil

// 測試empty

car_brand, err := getone(db, "select * from user where id = 999999")

if (car_brand != nil) || (err != nil)

}

測試用例有四種形式:

test***x(t testing.t) // 基本測試用例

benchmark***x(b testing.b) // 壓力測試的測試用例

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

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

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

func

example_getscore()

gotest的變數有這些:

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

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

fail  :

case失敗,測試用例繼續

failednow :

case失敗,測試用例中斷

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

skipnow :

case跳過,測試用例不繼續

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

log : 輸出資訊

logf : 輸出有format的資訊

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

skip : log + skipnow

skipf : logf + skipnow

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

error : log + fail

errorf : logf + fail

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

fatal : log + failnow

fatalf : logf + failnow

Go單元測試 testing

在開發程式中,很重要一點就是測試,測試可以保證 的質量,保證每個函式可以正常執行。但是如何保證寫出來的程式是否正確。單元測試一般是用來測試我們的 邏輯有沒有問題,有沒有按照我們期望的執行,以保證 質量。testing 單元測試 go語言自帶有乙個輕量級的測試框架testing和自帶的go test命...

Tornado 自帶Testing單元測試模組

asynctestcase 可以看做是對 ioloop 的乙個封裝,並以 testcase 的形式提供使用介面。class testfunc1 asynctestcase 這步如果不寫,會報錯傳入引數沒有ioloop,會導致無法進入runtest裡面 def get new ioloop self ...

Testing 理論測試題(一)

一 填空題 1.根據ieee對軟體測試做出的定義,軟體測試主要體現在 和 兩個方面。explanation 答案 評錯 度量 評錯 在特定的條件下執行系統或者構件,觀察或記錄結果,對系統的某個方面做出評價。度量 分析某個軟體項以發現現存的與要求的條件之差別。2.軟體測試的目的主要包括哪些?expla...