web-dev-qa-db-ja.com

HTTP応答をモックする方法

私はJavaユニットテストの初心者です。私が直面している問題は、サーバーのAPIにリクエストを送信して2つのメソッドをテストするためのJUnitテストを開発する必要があることです:addUserdeleteUser。ユーザーをサーバーに追加/サーバーから削除したい場合は、サーバーから認証トークンを取得する必要がありますが、サーバー側の問題のため、現在はt有効なトークンを取得します。つまり、サーバーがユニットテストからリクエストを受信した場合に、ユーザーの追加/削除操作のステータスを示すJSONデータで応答するというサーバーの動作を模倣することです。

私はJUnitがまったく新しいので。この操作を実装する方法がわかりません。だから私の質問は、モックを適用するおそらく最も簡単な方法は何ですか?

18
user5787623
HttpResponse httpResponse = mock(HttpResponse.class);

これを見てください: Mockitoを使用してApache HTTPClientをモックする

6
M2E67

単体テストでtest-http-serverの起動をシミュレートできます。それを行うためのいくつかのフレームワークがあります。たとえば、 Mockserver および Wiremock です。

4
codeflush.dev

GoogleからのHTTPユニットテスト を使用して実行できます。

単純なHTTP応答を生成するには、次のコードを使用できます。

HttpTransport transport = new MockHttpTransport();
HttpRequest request = transport.createRequestFactory().buildGetRequest(HttpTesting.SIMPLE_GENERIC_URL);
HttpResponse response = request.execute();

MockHttpTransportクラスの実装をオーバーライドして、テストをカスタマイズすることもできます。

詳細は here このリポジトリを確認してください。それはあなたに適していると思います。

3
Andrei Tigau