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
ログイン後にコピー

アサートを使用するには、まず単体テスト ファイルにインポートする必要があります:

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
ログイン後にコピー

実用的なケース

次の単純な関数を使用して 2 つの数値の合計を計算します:

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 フラグメントに追加します。各テスト ケースでは、入力値 a および b、および期待される結果 expected を指定します。

各テスト ケースをループし、Add 関数を呼び出し、assert を使用して結果が期待値と一致することをアサートします。いずれかのアサーションが失敗すると、テストは失敗します。

以上がGolang 関数をテストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート