Httptest を使用した Go での HTTP 呼び出しのテスト
httptest パッケージは、HTTP クライアントとサーバーをテストするための機能を提供します。 Go コードのテストにこのパッケージを利用するには、次の戦略を検討してください:
レスポンス テスト:
httptest.NewRecorder() を通じて新しいレコーダー インスタンスを作成します。このレコーダーを使用して、応答ステータス コードと本文の内容を評価します。
例:
resp := httptest.NewRecorder() req, _ := http.NewRequest("GET", "/", nil) http.DefaultServeMux.ServeHTTP(resp, req) if resp.Code != http.StatusOK { t.Errorf("Expected status code 200, got %d", resp.Code) }
サーバー テスト:
httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {})。このサーバーは HTTP サーバーをシミュレートし、HTTP クライアントの対話をテストできます。
例:
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, `{"fake twitter json string"}`) })) defer ts.Close() twitterUrl = ts.URL c := make(chan *twitterResult) go retrieveTweets(c) tweet := <-c if tweet != expected1 { t.Fail() }
以上がGo の「httptest」パッケージは HTTP クライアントとサーバーのテストをどのように簡素化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。