Golang で関数をテストする: _test.go で終わるテスト ファイルを作成します。 TestXXX という名前のテスト関数を宣言します。XXX はテスト対象の関数の名前です。アサーションを使用して、期待される結果が実際の結果と一致することを検証します。ブレークポイントを設定し、デバッガーを使用してテストの失敗をデバッグします。テーブル駆動のテストおよびカバレッジ ツールを使用して、テストの効率を高めます。
Golang 関数のテストとデバッグ
Golang では、テストはコードの信頼性と正確性を確保するための重要な実践です。 。このチュートリアルでは、Golang の組み込みテスト フレームワークを使用して関数をテストおよびデバッグする方法を説明します。
テスト関数
関数をテストするには、_test.go
で終わる新しいファイルを作成する必要があります。このファイルは、テスト対象の関数と同じパッケージ内にあります。テスト ファイルで、testing
パッケージの TestXXX
関数を使用してテスト関数を宣言します。ここで、XXX
はテスト対象の関数の名前です。例:
// my_function_test.go package mypackage import ( "testing" ) func TestAdd(t *testing.T) { // ... }
Assertion
テスト関数では、アサーションを使用して、期待される結果が実際の結果と一致するかどうかを検証します。 testing
このパッケージには、次のようなさまざまなアサーション関数が用意されています。
t.Equal(a, b)
: Verify a
および b
は等しいかどうかt.ErrorIs(err, ExpectedError)
: err
と expectedError
が同じエラーt.True(cond)
: cond
が true
であることを確認してください実際のケース
2 つの数値引数を受け取り、その合計を返す add
という関数があるとします。次のテスト関数を作成して、add
関数をテストできます:
// my_function_test.go import ( "testing" ) func TestAdd(t *testing.T) { tests := []struct { a, b int want int }{ {1, 2, 3}, {3, 4, 7}, {-1, -2, -3}, } for _, tt := range tests { got := add(tt.a, tt.b) if got != tt.want { t.Errorf("add(%d, %d) = %d, want %d", tt.a, tt.b, got, tt.want) } } }
Debug
デバッグ テストが失敗した場合は、ソースを渡すことができます。 code デバッガーを使用するためのブレークポイントを設定します。 VSCode などの IDE では、コード内の行を右クリックし、[ブレークポイントの設定/削除] を選択してブレークポイントを設定できます。コードがデバッガーで実行されると、ブレークポイントで一時停止し、変数とスタック トレースを検査できるようになります。
ヒント
以上がGolang 関数のテストとデバッグの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。