單元測試 Go 語言中的函數錯誤處理方法包括:建立模擬輸入:建立受控錯誤的模擬物件。斷言錯誤訊息:匹配傳回的錯誤訊息與預期的訊息。覆蓋錯誤情況:編寫針對所有可能錯誤情況的測試案例。
Go 語言函數錯誤處理中的單元測試
背景
在Go 語言中,透過檢查error
類型的值來處理函數中的錯誤。為了確保錯誤處理的正確性,執行單元測試至關重要。
單元測試策略
對函數中的錯誤處理進行單元測試時,以下策略非常有效:
assert.Equal()
這樣的斷言函式庫來驗證傳回的錯誤訊息與預期的錯誤訊息相符。 實戰案例
考慮以下計算兩個數字總和的函數:
func Sum(a, b int) (int, error) { if a < 0 || b < 0 { return 0, errors.New("non-negative integers only") } return a + b, nil }
單元測試
import ( "errors" "testing" ) func TestSum(t *testing.T) { tests := []struct { a, b int expected int err error }{ {a: 1, b: 2, expected: 3, err: nil}, {a: -1, b: 2, expected: 0, err: errors.New("non-negative integers only")}, } for _, tt := range tests { t.Run("test", func(t *testing.T) { sum, err := Sum(tt.a, tt.b) if sum != tt.expected { t.Errorf("Expected %d, got %d", tt.expected, sum) } if !errors.Is(err, tt.err) { t.Errorf("Expected error %q, got %q", tt.err, err) } }) } }
結論
使用類比輸入、錯誤訊息斷言和詳盡的測試案例覆蓋,可以有效地測試Go 語言中的函數錯誤處理。這有助於確保程式碼穩健且可靠。
以上是golang函數錯誤處理中的單元測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!