Go 函數單元測試可以透過覆蓋率驅動的方法來確保程式碼完全覆蓋。此方法包括:編寫測試案例以涵蓋函數的不同用例。使用 -cover 標誌執行測試以產生覆蓋率報告。檢查報告以確定所有程式碼行是否已覆蓋,若未覆蓋則新增更多測試案例。
覆蓋率驅動程式的Go 函數單元測試
引言
單元測試是軟體開發中至關重要的一步,它有助於確保程式碼的正確性。 Go 提供了強大的 testing 套件,支援針對函數編寫單元測試。透過覆蓋率驅動的測試,我們可以確保程式碼完全覆蓋。
覆蓋率摘要
覆蓋率測量測試執行過程中執行的程式碼行數的百分比。較高的覆蓋率表示測試更加全面。
Go 中的覆蓋率
Go 提供了 cover
工具來計算測試覆蓋率。要使用它,在運行測試命令之前,需要添加 -cover
標誌:
go test -cover
這將輸出一個覆蓋率報告,列出未覆蓋的程式碼行以及覆蓋率百分比。
實戰案例
讓我們考慮以下sum
# 函數:
func sum(a, b int) int { return a + b }
要為這個函數寫一個覆蓋率驅動的單元測試,請執行下列步驟:
sum
函數的不同用例。 cover
標誌執行測試。這將產生一個覆蓋率報告。 逐步範例
以下是逐步範例:
第一步:編寫測試案例
#package main import ( "testing" ) func TestSum(t *testing.T) { // 测试用例 1 result := sum(1, 2) expected := 3 if result != expected { t.Errorf("Test case 1 failed: expected %d, got %d", expected, result) } // 测试用例 2 result = sum(0, 0) expected = 0 if result != expected { t.Errorf("Test case 2 failed: expected %d, got %d", expected, result) } }
第二步:使用覆蓋率
go test -cover
第三個步驟:比較覆蓋率
運行go test -cover
將輸出覆蓋率報告:
coverage: 100.0% of statements in main.go
這表示sum
函數中的所有程式碼行都已覆寫。
結論
覆蓋率驅動的單元測試是確保 Go 函數正確性的有效方法。透過使用 cover
工具,我們可以輕鬆計算覆蓋率並針對未覆蓋的程式碼行添加更多測試案例。
以上是覆蓋率驅動的 Go 函數單元測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!