當你寫完乙個函式,結構體,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...