首頁 > 後端開發 > Golang > 主體

Golang函數如何測試?

WBOY
發布: 2024-04-11 21:03:02
原創
688 人瀏覽過

Go 函數測試指南:單元測試用於隔離測試函數行為。 testify/assert 提供有用的斷言工具,需要匯入 github.com/stretchr/testify/assert。使用 assert.Equal(t, 預期值, 函數呼叫) 進行斷言。使用 go test 指令執行測試。

Golang函數如何測試?

Go 函數測試

在編寫 Go 程式時,單元測試至關重要,它允許我們驗證函數是否按預期運行。本文將提供有關如何測試 Go 函數的逐步指南,並附有實戰案例。

單元測試

單元測試是在隔離環境中測試函數的行為,而不考慮其他程式碼。

使用 testify/assert

testify/assert 是一個流行的 Go 測試包,具有一組有用的斷言工具。要安裝它,請執行:

go get github.com/stretchr/testify/assert
登入後複製

要使用assert,首先需要在單元測試檔案中匯入它:

import "github.com/stretchr/testify/assert"
登入後複製

現在,您可以編寫測試案例,如下所示:

func TestAdd(t *testing.T) {
  // 断言 a+b 等于 c
  assert.Equal(t, 3, Add(1, 2))
}
登入後複製

使用go test

要執行單元測試,請在命令列中使用go test 指令:

go test
登入後複製

實戰案例

#考慮以下用於計算兩個數字總和的簡單函數:

func Add(a, b int) int {
  return a + b
}
登入後複製

為了測試此函數,我們可以使用以下測試案例:

func TestAdd(t *testing.T) {
  testCases := []struct {
    a, b, expected int
  }{
    {1, 2, 3},
    {5, 10, 15},
    {-1, -2, -3},
  }

  for _, tc := range testCases {
    actual := Add(tc.a, tc.b)
    assert.Equal(t, tc.expected, actual)
  }
}
登入後複製

在測試案例中,我們將多個測試集合到testCases 片段中。每個測試案例都指定了輸入值 ab,以及預期的結果 expected

循環遍歷每個測試案例,呼叫 Add 函數並使用 assert 斷言結果與預期值相符。如果任何斷言失敗,則測試將失敗。

以上是Golang函數如何測試?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板