2
jsonデータでhttp POSTを模擬したいと思います。http POSTをapplicationType JsonとMockito Javaで模擬する方法
私は次のコードでsuccedded GETメソッドの場合:
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
when(request.getMethod()).thenReturn("GET");
when(request.getPathInfo()).thenReturn("/getUserApps");
when(request.getParameter("userGAID")).thenReturn("test");
when(request.getHeader("userId")).thenReturn("[email protected]");
私の問題は、HTTP POSTリクエストのボディです。 application/json
タイプのコンテンツが含まれています。
何かこれのようなものですが、json応答に答えるための要求パラメータは何でしょうか?
HttpServletRequest request = mock(HttpServletRequest.class);
HttpServletResponse response = mock(HttpServletResponse.class);
when(request.getMethod()).thenReturn("POST");
when(request.getPathInfo()).thenReturn("/insertPaymentRequest");
when(???? ).then(???? maybe ?? // new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
new Gson().toJson("{id:213213213 , amount:222}", PaymentRequest.class);
}
});
「public Object answer ...」は、Jsonリターンに使用する正しい方法ではありません。
usersServlet.service(request, response);
私は具体的な質問に例/解決策を提供できますか? – VitalyT
@VitalyTサンプルコード –
で回答を更新しました。コンパイルエラーが発生しました:(request.getInputStream())whenReturn(new ByteArrayInputStream(json.getBytes(StandardCharsets.UTF_8))); --inputstream to ByteArrayInputStream – VitalyT