Httptest を使用して Go で HTTP 呼び出しをテストする
指定された URL に JSON 形式でメッセージを投稿するための HTTPPost 関数を実装する場合、テスト ケースを作成する関数の正確性を保証するために重要です。 httptest パッケージは、HTTP サーバーをモックする強力な方法を提供し、開発者が外部サーバーと対話せずに HTTP クライアントをテストできるようにします。
Httptest を使用して HTTP サーバーをモックする
httptest を使用するには、httptest.NewServer 関数を使用して模擬サーバーを作成できます。この模擬サーバーは実際のサーバーの代わりとして機能し、提供する応答を制御できるようにします。
<code class="go">func TestYourHTTPPost(t *testing.T){ ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, `response from the mock server goes here`) // you can also inspect the contents of r (the request) to assert over it })) defer ts.Close() mockServerURL = ts.URL message := "the message you want to test" resp, err := HTTPPost(message, mockServerURL) // assert over resp and err here }</code>
この例では、事前定義された応答を返すハンドラー関数を使用して模擬サーバーが作成されます。 。また、モック サーバーが受信したリクエストを検査して、HTTPPost 関数によって送信されたデータを検証することもできます。
レスポンスとエラーのアサート
モック サーバーを作成したら代わりに、HTTPPost 関数によって返された応答とエラーに対してアサートを続行できます。 testing パッケージが提供するさまざまなメソッドを使用して、予期される動作を検証できます。
たとえば、返された応答コードが予期したものであるか、返されたエラーが正しいかどうかを確認できます。エラーが予想されない場合は nil です。 HTTPPost 関数を徹底的にテストすることで、その正確さと堅牢性に対する信頼を高めることができます。
以上がHttptest を使用して Go で HTTP 呼び出しをテストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。