golang 関数をテストしてカバーするにはどうすればよいですか?

WBOY
リリース: 2024-04-27 13:36:02
オリジナル
832 人が閲覧しました

Go では、安定した信頼性の高いコードを維持するためにテストとカバレッジが重要です。テストは、Test で始まり、関数の期待される出力を検証するためのアサーションを含む関数を作成することによって行われます。テストを実行する場合は go test コマンドを使用します。カバレッジを測定するには、 go test -coverprofile=coverage.out コマンドを使用してカバレッジ プロファイルを生成します。カバレッジ レポートを表示するには、go ツールの cover -html=coverage.out コマンドを使用します。これにより、実行されなかったコード行がブラウザーに表示されます。

golang 関数をテストしてカバーするにはどうすればよいですか?

Go 関数のテストとカバレッジ

Go では、安定した信頼性の高いコードを維持するためにテストとカバレッジが不可欠です。 。このチュートリアルでは、Go 関数のテストのセットアップと実行を段階的に説明します。

テストのセットアップ

まず、_test.go で終わるファイルを作成し、必要な関数が含まれるディレクトリに配置します。テストは真ん中にあります。

次に、名前が Test で始まり、その後にテスト対象の関数の名前が続くテスト関数を作成します。テスト関数には、関数の期待される出力を検証するために複数のアサーションが含まれている必要があります。

package mypackage

import (
    "testing"
)

func TestAdd(t *testing.T) {
    expected := 10
    result := Add(5, 5)
    if result != expected {
        t.Errorf("Expected %d, got %d", expected, result)
    }
}
ログイン後にコピー

テストを実行します

go test コマンドを使用してテストを実行します:

go test
ログイン後にコピー

カバレッジを測定する

カバレッジは、コード内で実行されるコードの行数を測定します。カバレッジを測定するには、-cover フラグを使用できます。

go test -coverprofile=coverage.out
ログイン後にコピー

このコマンドは、coverage.out という名前のカバレッジ構成ファイルを生成します。

カバレッジ レポートの表示

go tool cover コマンドを使用して、カバレッジ レポートを表示できます:

go tool cover -html=coverage.out
ログイン後にコピー

これにより、デフォルトで実行される カバレッジ レポートがブラウザで開き、実行されなかったコード行が表示されます。

#実際的なケース

配列内の要素の合計を計算する関数を考えてみましょう:

package mypackage

func SumArray(arr []int) int {
    sum := 0
    for _, v := range arr {
        sum += v
    }
    return sum
}
ログイン後にコピー

テスト ケース

func TestSumArray(t *testing.T) {
    arr := []int{1, 2, 3, 4, 5}
    expected := 15
    result := SumArray(arr)
    if result != expected {
        t.Errorf("Expected %d, got %d", expected, result)
    }
}
ログイン後にコピー

テストを実行してカバレッジを表示

go test -coverprofile=coverage.out
go tool cover -html=coverage.out
ログイン後にコピー
これにより、

SumArray 関数内のすべてのコード行が実行されたことを示すカバレッジ レポートが生成されます。

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

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