GoLang 中錯誤處理透過 error 類型表示錯誤,可透過 fmt.Errorf() 建立。單元測試使用 testing 函式庫,透過編寫測試案例驗證函數正確性,斷言傳回結果是否與預期一致。
GoLang 函數的錯誤處理與單元測試的搭配
##錯誤處理
GoLang 中的錯誤處理機制非常簡單且有效。透過使用error 類型,我們可以表示函數執行中的錯誤。可以透過
fmt.Errorf() 函數來建立錯誤訊息。
package main import ( "fmt" ) func divide(a, b int) (int, error) { if b == 0 { return 0, fmt.Errorf("cannot divide by zero") } return a / b, nil } func main() { result, err := divide(10, 2) if err != nil { fmt.Println(err) } else { fmt.Println(result) } }
單元測試
單元測試對於驗證函數的正確性至關重要。 GoLang 提供了testing 函式庫,可以輕鬆編寫和執行單元測試。
package main import ( "fmt" "testing" ) func TestDivide(t *testing.T) { type testCases struct { a int b int expected int expectedError error } cases := []testCases{ {10, 2, 5, nil}, {10, 0, 0, fmt.Errorf("cannot divide by zero")}, } for _, c := range cases { result, err := divide(c.a, c.b) if result != c.expected || err != c.expectedError { t.Errorf("Test failed for input (%d, %d) expected (%d, %s) but got (%d, %s)", c.a, c.b, c.expected, c.expectedError, result, err) } } }在此範例中,我們建立了一個測試表,其中包含不同的測試案例。然後,我們對每個測試案例執行
divide 函數,並斷言傳回的值和錯誤與預期結果相符。
以上是golang函數的錯誤處理與單元測試的搭配的詳細內容。更多資訊請關注PHP中文網其他相關文章!