Go 標準函式庫透過 testing 套件提供了單元測試功能,只需建立 _test.go 檔案並編寫測試函數即可。測試函數使用斷言函數,如 AssertEqual 和 AssertTrue,比較預期結果和實際結果。測試通過或失敗的資訊將透過 go test 命令顯示。
Go 標準函式庫提供了testing
套件,它提供了豐富的功能,用於編寫和運行單元測試。本文將指導你如何使用 testing
套件來測試你的 Go 程式碼。
要為Go 程式設定單元測試,請依照下列步驟操作:
your_package_name_test.go
的檔案。 testing
套件:import "testing"
每個單元測試都作為一個獨立的函數編寫,名稱為func TestX(t *testing.T)
。其中X
是測試案例的名稱,而t
是一個*testing.T
類型的指針,它提供了用於執行測試、報告結果和記錄錯誤的方法。
func TestPassingTest(t *testing.T) { // 测试用例的代码... }
testing
套件提供了多種斷言函數來比較測試結果和預期值。常用的斷言函數包括:
AssertEqual(t, expected, actual)
:檢查expected
和actual
是否相等AssertNotEqual(t, value1, value2)
:檢查value1
和value2
是否不相等AssertTrue(t , condition)
:斷言條件condition
為真AssertFalse(t, condition)
:斷言條件condition
為假讓我們為一個計算兩個數字總和的函數寫一個單元測試。
package my_package import ( "testing" ) func Sum(a, b int) int { return a + b }
單元測試
import ( "testing" "my_package" ) func TestSum(t *testing.T) { tests := []struct { a int b int expected int }{ {1, 2, 3}, {5, 7, 12}, } for _, tc := range tests { result := my_package.Sum(tc.a, tc.b) if result != tc.expected { t.Errorf("Sum(%d, %d) returned %d, expected %d", tc.a, tc.b, result, tc.expected) } } }
在單元測試中,我們建立了一個[]struct
類型的測試案例列表,其中包含輸入值和預期的輸出。我們使用循環遍歷測試案例,並針對每個用例使用 AssertEqual
斷言來驗證計算的結果與預期結果是否一致。
要執行單元測試,可以在命令列中執行以下命令:
go test
它將在專案目錄及其子目錄中找到所有_test.go
檔案並執行其中的測試。成功運行的測試將顯示為綠色通過訊息,而失敗的測試將顯示為紅色錯誤訊息。
以上是如何使用 Go 標準函式庫進行單元測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!