go學習筆記-程式測試
阿新 • • 發佈:2018-11-09
程式測試
測試是一個可重複的過程,它驗證某個東西是否按預期工作。一般通過 go test 進行測試,步驟如下
首先,是我們的檔名。Go 要求所有的測試都在以 _test.go 結尾的檔案中。這使得我們在檢查另一個 package 包的原始碼時,確定哪些檔案是測試和哪些檔案實現功能非常容易。
在看了檔名之後,我們可以直接跳轉到程式碼中,將測試包匯入。它為我們提供了一些型別 (如testing.T) ,這些型別提供常見功能,比如在測試失敗時設定錯誤訊息。
接下來,是編寫測試函式。所有的測試都應該以 func TestXxx(*testing.T) 的格式來編寫。其中 Xxx 可以是任何字元或數字,而第一個字元需要是大寫字元或數字。(譯註:一般,Xxx 就是被測試的函式名)
最後,如上所述,我們使用了測試函式中的引數 *tesing.T。如果我們沒有得到預期的結果,我們使用它來設定一個錯誤,當我們執行測試時,該錯誤將顯示在終端上。
package testing func Sum(numbers []int) int { sum := 0 // 這個 bug 是故意的 for _, n := range numbers { sum += n } return sum } 接下來在同一個包中,建立一個名為 sum_test.go 的檔案,並將下面的程式碼新增到其中。 package testing import ( "fmt" "testing" ) func TestSum(t *testing.T) { numbers := []int{1, 2, 3, 4, 5} expected := 15 actual := Sum(numbers) if actual != expected { t.Errorf("Expected the sum of %v to be %d but instead got %d!", numbers, expected, actual) } } 現在我們要執行我們的測試,所以在終端中切換到 testing101 包所在目錄,並使用下面的命令執行測試。 go test -v 你應該看到像這樣的輸出: === RUN TestSum — PASS: TestSum (0.00s) PASS ok calhoun.io/testing101 0.005s