ホームページ  >  記事  >  バックエンド開発  >  golang 関数のテストとカバレッジにはどのようなツールがありますか?

golang 関数のテストとカバレッジにはどのようなツールがありますか?

WBOY
WBOYオリジナル
2024-04-26 21:30:02502ブラウズ

関数テストおよびカバレッジ ツール: テスト ツール: Go 標準ライブラリ testingtestify/assert カバレッジ ツール: go testgopcover

golang 関数のテストとカバレッジにはどのようなツールがありますか?

#Go 関数テストおよびカバレッジ ツール

Go 開発では、コードの正確さと信頼性を確保するために、関数のカバレッジをテストおよび測定することが重要です。 Go エコシステムは、この目的のためにさまざまな成熟したツールを提供します。

テスト ツール

  • Go 標準ライブラリのテスト: Go 標準ライブラリは、次を使用する組み込みのテスト パッケージを提供します。テストケースを作成して実行するため。テストとアサーションを簡単に定義できるフレンドリーな API を提供します。

    import (
      "testing"
    
      "github.com/stretchr/testify/assert"
    )
    
    func TestAdd(t *testing.T) {
      assert.Equal(t, 10, Add(5, 5))
    }

  • testify/assert: これは、期待値を実際の値に対してより簡単に検証できる一連のアサーション関数を提供するサードパーティ ライブラリです。結果。テストを作成するためのクリーンで読みやすい構文を提供します。

    import "github.com/stretchr/testify/assert"
    
    func TestAdd(t *testing.T) {
      result := Add(5, 5)
      assert.True(t, result == 10)
    }

カバレッジ ツール

  • ##テストに行く

    :テストに行くコマンドには、テストの実行時にコード カバレッジ レポートを生成できる組み込みカバレッジ ツールが含まれています。ファイル、パッケージ、機能ごとの詳細なカバレッジ情報を提供します。 <pre class='brush:go;toolbar:false;'>go test -coverprofile=coverage.out</pre>

  • gopcover

    : これは、未カバーのコード行を含むより詳細なレポートを生成する軽量のサードパーティ カバレッジ ツールです。視覚的なカバレッジ レポートを生成することもできます。

    gopcover -v -o coverage.html

実用的なケース

次は、

go test

testing## を使用して作成されたテストです。 # ライブラリ 例:

package main

import (
    "testing"
)

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

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

    for _, test := range tests {
        t.Run(string(test.a)+"+"+string(test.b), func(t *testing.T) {
            result := Add(test.a, test.b)
            if result != test.expected {
                t.Errorf("Expected %d, got %d", test.expected, result)
            }
        })
    }
}
この例では、TestAdd

関数には、入力値と予想される出力値を含むスライスが含まれています。テスト ケースごとに、関数はテストを実行し、

t.Errorf を使用して不一致を報告します。

以上がgolang 関数のテストとカバレッジにはどのようなツールがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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