Go 言語開発で単体テストと統合テストを実行する方法
要約:
ソフトウェア開発において、単体テストと統合テストは、コードの品質と機能の安定性を確保するための重要な手段です。 Go 言語には完全なツール サポート セットもあり、単体テストと統合テストがより簡単かつ効率的になります。この記事では、Go 言語開発における単体テストと結合テストの実行方法を紹介し、いくつかのサンプルコードを使用してデモンストレーションします。
// add.go package main func Add(a, b int) int { return a + b }
// add_test.go package main import "testing" func TestAdd(t *testing.T) { result := Add(2, 3) if result != 5 { t.Errorf("Add(2, 3) = %d; want 5", result) } }
add_test.go ファイルでは、Add 関数が正しい結果を返すかどうかをテストする TestAdd という名前の関数を定義します。テスト関数では、 testing.T 型オブジェクトの Errorf メソッドを呼び出すことで、詳細なエラー情報を出力できます。 go test コマンドを実行して単体テストを実行します。
// main_test.go package main import ( "net/http" "net/http/httptest" "testing" ) func TestHTTPHandler(t *testing.T) { req, err := http.NewRequest("GET", "/hello", nil) if err != nil { t.Fatal(err) } rr := httptest.NewRecorder() handler := http.HandlerFunc(HelloHandler()) handler.ServeHTTP(rr, req) if status := rr.Code; status != http.StatusOK { t.Errorf("handler returned wrong status code: got %v want %v", status, http.StatusOK) } expected := "Hello, World!" if rr.Body.String() != expected { t.Errorf("handler returned unexpected body: got %v want %v", rr.Body.String(), expected) } }
main_test.go ファイルでは、まずシミュレートされたリクエスト オブジェクト req を作成し、次に httptest.NewRecorder 関数を使用してレスポンス レコーダー rr を作成します。次に、HelloHandler 関数を呼び出してリクエストを処理し、結果をレスポンス ロガーに書き込みます。最後に、応答のステータス コードと応答の内容を検証することにより、統合テストが実行されます。
以上がGo 言語開発で単体テストと結合テストを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。