ホームページ  >  記事  >  バックエンド開発  >  Golang: httptest を使用して HTTP 応答をインターセプトおよびシミュレートする

Golang: httptest を使用して HTTP 応答をインターセプトおよびシミュレートする

王林
王林転載
2024-02-09 08:24:331133ブラウズ

Golang:使用 httptest 拦截和模拟 HTTP 响应

php エディター Zimo は、httptest を使用して Golang で HTTP 応答をインターセプトおよびシミュレートすることに関する記事を提供します。この記事では、httptest パッケージを使用して HTTP リクエストをインターセプトし、単体テストと機能テストの応答をシミュレートする方法について詳しく説明します。 httptest を使用すると、さまざまなシナリオで HTTP 応答を簡単にシミュレートし、コードの正確さと堅牢性をテストできます。これらのテクニックをマスターすることは、初心者にとっても経験豊富な開発者にとっても非常に役立ちます。続いては具体的な導入方法について見ていきましょう!

質問の内容

golang での模擬テストに利用できるさまざまなツールを調べましたが、このタスクを達成するために httptest を使用しようとしています。特に、次のような関数があります:

リーリー

私が読んだ多くのドキュメントでは、クライアント インターフェイスまたはカスタム トランスポートを作成する必要があるようです。このメインコードを変更せずにテストファイルで応答をシミュレートする方法はありますか?クライアント、応答、および関連するすべての詳細を getresponse 関数に保持したいと考えています。私の考えが間違っているかもしれませんが、http.defaultclient.do(req) 呼び出しをインターセプトしてカスタム応答を返す方法を見つけようとしています。これは可能ですか?

解決策

クライアント インターフェイスを作成する必要があるようです。

このメインコードは一切変更しないでください

コードをクリーンに保つことは良い習慣です。最終的にはそれに慣れます。テスト可能なコードはクリーンであり、クリーンなコードはよりテストしやすいため、受け入れられるようにコードを変更することを心配する必要はありません (インターフェイスを使用)モックオブジェクト。

最も単純なコード形式は次のようになります:

リーリー

テストは次のようになります:

リーリー

ただし、httptest を使用する場合:

リーリー

以上がGolang: httptest を使用して HTTP 応答をインターセプトおよびシミュレートするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。