ホームページ  >  記事  >  バックエンド開発  >  golang関数の単体テスト

golang関数の単体テスト

WBOY
WBOYオリジナル
2024-04-20 09:48:02693ブラウズ

単体テストは、個々の関数または小さなロジックをテストして、変更されたコードが引き続き期待どおりに実行されることを確認します。実際の例には、関数の作成、テスト ファイルの作成、テスト ケースの定義、t.Errorf を使用したテスト失敗の報告などが含まれます。ベスト プラクティスには、すべての関数のテストの作成、意味のあるテスト ケース名の使用、さまざまな入力のテスト、テストの頻繁な実行、テストの単純化が含まれます。

golang関数の単体テスト

Go 言語関数の単体テスト

はじめに

単体テストは、単一の関数または小さなロジック部分をテストするプロセスです。コードベース。これらは、変更後もコードが期待どおりに実行されることを保証し、バグが発生するリスクを軽減するのに役立ちます。

実際的なケース

2 つの数値の合計を計算する次の関数について考えてみましょう:

func Sum(a, b int) int {
    return a + b
}

この関数をテストするには、テスト ファイルを作成し、 を使用します。 testing パッケージ:

import (
    "testing"
)

func TestSum(t *testing.T) {
    // 创建测试用例
    testCases := []struct {
        a, b, expected int
    }{
        {1, 2, 3},
        {3, 5, 8},
        {-1, -2, -3},
    }

    for _, tc := range testCases {
        // 运行函数并获取结果
        result := Sum(tc.a, tc.b)

        // 检查结果是否等于预期值
        if result != tc.expected {
            t.Errorf("预期 %d,但得到 %d", tc.expected, result)
        }
    }
}

テストの実行

次のコマンドを使用してテストをコンパイルして実行します:

go test

すべてのテストが成功すると、次のような出力が表示されます。 :

PASS
ok      github.com/username/mypackage  0.004s

ベスト プラクティス

  • 関数またはロジックのブロックごとにテスト関数を作成します。
  • 意味のあるテスト ケース名を使用してください。
  • さまざまな入力とエッジケースをテストします。
  • テストの失敗を報告するには、t.Errorf を使用します。
  • テストはシンプルで理解しやすいものにしてください。
  • テストを頻繁に実行して、コードが正しいことを確認します。

以上がgolang関数の単体テストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。