ホームページ > バックエンド開発 > Golang > 単体テストフレームワークを使用して Golang 関数をテストするにはどうすればよいですか?

単体テストフレームワークを使用して Golang 関数をテストするにはどうすればよいですか?

WBOY
リリース: 2024-04-16 11:00:01
オリジナル
861 人が閲覧しました

Go での単体テストには単体テスト フレームワークを使用します。テスト パッケージをインポートします。 Test という接頭辞を付けて単体テスト関数を作成します。テスト結果を検証するには、assertEqual() などのアサーション関数を使用します。単体テスト (go test) を実行して、関数が正しいことを確認します。

如何使用单元测试框架对 Golang 函数进行测试?

単体テスト フレームワークを使用して Go 関数をテストする方法

単体テストは、単一関数の正しさを検証するために不可欠です。またはメソッド 重要なソフトウェア開発慣行。 Go では、testing パッケージなどの単体テスト フレームワークを使用すると、単体テストが非常に簡単になります。

単体テスト フレームワークのインストール

#testing パッケージは Go 標準ライブラリの一部です。これを使用するには、testing パッケージをプロジェクトにインポートします。

import "testing"
ログイン後にコピー

Writing Unit Tests

各単体テストは Test は接頭辞が付けられる関数です。ポインタ *testing.T をパラメータとして受け入れます。これは、テスト結果を報告し、障害情報を記録するために使用されます。

基本的な単体テスト関数は次のとおりです。

func TestAdd(t *testing.T) {
    result := Add(1, 2)
    if result != 3 {
        t.Errorf("Add(1, 2) = %d; want 3", result)
    }
}
ログイン後にコピー

Assertion

##testing このパッケージには、一連のアサーション関数が用意されています。テスト結果を検証するために使用されます。一般的に使用されるアサーションは次のとおりです。

  • assertEqual()
  • assertNotEqual()
  • assertNil()
  • assertError()

実践的なケース

2 の合計を計算する関数を考えてみましょう。数値

Add() 関数:

func Add(a, b int) int {
    return a + b
}
ログイン後にコピー

この関数を検証する単体テストを作成できます:

import "testing"

func TestAdd(t *testing.T) {
    tests := []struct {
        a, b, want int
    }{
        {1, 2, 3},
        {0, 0, 0},
        {-1, -1, -2},
    }

    for _, test := range tests {
        result := Add(test.a, test.b)
        if result != test.want {
            t.Errorf("Add(%d, %d) = %d; want %d", test.a, test.b, result, test.want)
        }
    }
}
ログイン後にコピー

テストを実行します

単体テストを実行するには、

go test コマンドを使用します。プロジェクト内のすべての Test* 関数を検索して実行します。

go test
ログイン後にコピー

テストが成功すると、次の結果が出力されます。

PASS
ok  my_project/my_package  1.730s
ログイン後にコピー
それ以外の場合は、エラー メッセージを含む失敗したテストが報告されます。

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

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