Go 関数のカバレッジ主導の単体テスト

PHPz
リリース: 2024-05-04 22:12:01
オリジナル
1134 人が閲覧しました

Go 関数単体テストでは、カバレッジ主導のアプローチを通じて完全なコード カバレッジを保証できます。このアプローチは、関数のさまざまな使用例をカバーするテスト ケースを作成することで構成されます。 -cover フラグを指定してテストを実行し、カバレッジ レポートを生成します。レポートをチェックして、コードのすべての行がカバーされているかどうかを確認し、カバーされていない場合はテスト ケースを追加します。

覆盖率驱动的 Go 函数单元测试

#カバレッジ主導の Go 関数単体テスト

はじめに

単体テストこれはソフトウェア開発における重要なステップであり、コードの正確性を保証するのに役立ちます。 Go は、関数の単体テストの作成をサポートする強力なテスト パッケージを提供します。カバレッジ主導のテストにより、完全なコード カバレッジを保証します。

カバレッジの概要

カバレッジは、テスト実行中に実行されるコード行の割合を測定します。カバレッジが高いほど、テストがより包括的であることを示します。

Go のカバレッジ

Go は、テスト カバレッジを計算するための

cover ツールを提供します。これを使用するには、テスト コマンドを実行する前に、-cover フラグを追加する必要があります:

go test -cover
ログイン後にコピー
ログイン後にコピー

これにより、カバーされていないコード行とカバレッジをリストしたカバレッジ レポートが出力されます。割合。

実践的なケース

次の

sum 関数について考えてみましょう:

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

これに対してカバレッジ駆動のユニットを作成するにはfunction テストするには、次の手順を実行してください:

  1. テスト ケースを作成します: sum 関数のさまざまな使用例をテストするテスト関数を作成します。
  2. カバレッジの使用: cover フラグを使用してテストを実行します。これにより、カバレッジ レポートが生成されます。
  3. カバレッジの比較: カバレッジ レポートをチェックして、コードのすべての行がカバーされているかどうかを確認します。カバーされていない場合は、テスト ケースを追加して、カバーされていないコードをカバーします。

ステップバイステップの例

次に、ステップバイステップの例を示します:

ステップ 1:テスト ケースを作成する

package main

import (
    "testing"
)

func TestSum(t *testing.T) {
    // 测试用例 1
    result := sum(1, 2)
    expected := 3
    if result != expected {
        t.Errorf("Test case 1 failed: expected %d, got %d", expected, result)
    }
    
    // 测试用例 2
    result = sum(0, 0)
    expected = 0
    if result != expected {
        t.Errorf("Test case 2 failed: expected %d, got %d", expected, result)
    }
}
ログイン後にコピー

ステップ 2: カバレッジを使用する

go test -cover
ログイン後にコピー
ログイン後にコピー

ステップ 3: カバレッジを比較

実行

go test -cover はカバレッジ レポートを出力します:

coverage: 100.0% of statements in main.go
ログイン後にコピー

これは、

sum 関数内のすべてのコード行がカバーされていることを意味します。

結論

カバレッジ主導の単体テストは、Go 関数の正確性を確認する効果的な方法です。

cover ツールを使用すると、カバレッジを簡単に計算し、カバーされていないコード行のテスト ケースを追加できます。

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!