Go 標準ライブラリは、_test.go ファイルを作成してテスト関数を記述するだけで、テスト パッケージを通じて単体テスト機能を提供します。テスト関数は、AssertEqual や AssertTrue などのアサーション関数を使用して、期待される結果と実際の結果を比較します。テストが成功したか失敗したかに関する情報は、go test コマンドで表示されます。
Go 標準ライブラリには、豊富な機能を提供する testing
パッケージが用意されています単体テストの作成と実行用。この記事では、testing
パッケージを使用して Go コードをテストする方法を説明します。
Go プログラムの単体テストをセットアップするには、次の手順に従います。
ファイル。
パッケージ:
import "testing"
func TestX という名前の独立した関数として記述されます(t *testing.T)。 #XX
はテスト ケースの名前、t
は *testing.T
型のポインターであり、テストの実行、結果のレポート、およびレポートの関数を提供します。エラーのロギング方法。 <pre class='brush:go;toolbar:false;'>func TestPassingTest(t *testing.T) {
// 测试用例的代码...
}</pre>
Assertions
このパッケージには、テスト結果を期待値と比較するためのさまざまなアサーション関数が用意されています。一般的に使用されるアサーション関数は次のとおりです。
expected
と actual
が等しいかどうかを確認します
value1
と value2
が等しくないかどうかを確認します。
condition
が true であることをアサートします。
condition
が false であることをアサートします。
package my_package import ( "testing" ) func Sum(a, b int) int { return a + b }単体テスト
import (
"testing"
"my_package"
)
func TestSum(t *testing.T) {
tests := []struct {
a int
b int
expected int
}{
{1, 2, 3},
{5, 7, 12},
}
for _, tc := range tests {
result := my_package.Sum(tc.a, tc.b)
if result != tc.expected {
t.Errorf("Sum(%d, %d) returned %d, expected %d", tc.a, tc.b, result, tc.expected)
}
}
}
単体テストでは、入力値を含むタイプ
のテスト ケースのリストを作成します。そして期待される出力。ループを使用してテスト ケースを繰り返し、各ケースで AssertEqual
アサーションを使用して、計算結果が期待される結果と一致していることを確認します。 単体テストの実行
go test
プロジェクト ディレクトリ内のすべての ## が検索され、そのサブディレクトリ #_test.go
ファイルを開き、その中でテストを実行します。テストが正常に実行された場合は緑色の合格メッセージが表示され、テストが失敗した場合は赤色のエラー メッセージが表示されます。以上が単体テストに Go 標準ライブラリを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。