Golang は、効率性、シンプルさ、強力な同時実行サポートなど、多くの魅力的な機能を備えた最新のプログラミング言語です。 Golang のテスト ツールも非常に強力なので、この記事では Golang のテストの使い方を詳しく紹介します。
Golang では、テスト コードとテスト対象のコードは分離されています。これは、テスト コードと運用コードの混同を避け、テスト コードの作成と保守を容易にするためです。テスト コードは、_test.go で終わる別のファイルに配置されます。これは、テスト コードは運用コードのすべてを使用およびアクセスできますが、運用コードはテスト コードの何も使用できないことを意味します。
Golang には、単体テストと統合テストという 2 つの形式のテストがあります。単体テストは機能やメソッドをテストするために使用され、統合テストはシステムの複数のコンポーネント間の正しい相互作用をテストするために使用されます。
まず、単体テストの使用法を見てみましょう。以下は、単純な加算関数のテスト コードです。
package main import "testing" func TestAdd(t *testing.T) { input1 := 1 input2 := 2 expected := 3 result := Add(input1, input2) if result != expected { t.Errorf("Add(%d, %d) = %d; want %d", input1, input2, result, expected) } }
テスト関数は、Test で始まり、その後にテスト関数の名前が続く必要があります。テスト関数のパラメーターは t *testing.T で、テスト関数が成功したか失敗したかを確認するために使用できます。この例では、テスト関数は、Add 関数が 1 と 2 の合計を正しく計算していることをチェックし、結果が 3 でない場合はエラー メッセージを出力します。
go test コマンドを実行すると、TestAdd 関数が自動的に実行され、結果が出力されます。関数がテストに合格した場合は何も出力されません。そうでない場合は、以下に示すようにエラー メッセージが出力されます。
--- FAIL: TestAdd (0.00s) main_test.go:10: Add(1, 2) = 4; want 3
次に、統合テストの使用方法を見てみましょう。以下は、単純な Web アプリケーションのテスト コードです。
package main import ( "net/http" "net/http/httptest" "testing" ) func TestIndexHandler(t *testing.T) { req, err := http.NewRequest("GET", "/", nil) if err != nil { t.Fatal(err) } rr := httptest.NewRecorder() handler := http.HandlerFunc(IndexHandler) handler.ServeHTTP(rr, req) if rr.Code != http.StatusOK { t.Errorf("handler returned wrong status code: got %v want %v", rr.Code, http.StatusOK) } expected := "Hello, world!" if rr.Body.String() != expected { t.Errorf("handler returned unexpected body: got %v want %v", rr.Body.String(), expected) } }
この例では、HTTP リクエストを作成し、httptest.NewRecorder() 関数を使用して応答レコーダーを作成します。次に、http.HandlerFunc 関数を使用してハンドラーを作成し、それに要求ロガーと応答ロガーを渡します。最後に、応答のステータス コードと本文の内容が正しいことを確認します。
go test コマンドが実行されると、テスト コードによって Web アプリケーションが起動され、テストが実行されます。テストが成功した場合は何も出力されません。そうでない場合は、エラー メッセージが出力されます。
要約すると、Golang のテスト ツールは非常に強力で使いやすいです。これらは、信頼性の高いソフトウェアを作成するのに役立ち、テスト コードの保守と更新を容易にします。単体テストでも統合テストでも、Golang のテスト ツールはコードの正確性を確認するためのシンプルかつ効果的な方法を提供するため、Golang コードを作成する際には頻繁に使用する必要があります。
以上がGolang のテスト使用法の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。