我希望模拟使用json数据的http POST请求。
对于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("xxx@aaa-app.com");
我的问题是关于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);
request = mock(HttpServletRequest.class)
。 - Yaroslav Stavnichiy