我正在尝试测试HttpServletRequest
,为此我使用了Mockito,如下所示:
HttpServletRequest mockedRequest = Mockito.mock(HttpServletRequest.class);
现在在将http请求放入assert
方法之前我只想在不启动真实服务器的情况下构建一个简单的http标头:
x-real-ip:127.0.0.1
host:example.com
x-forwarded-for:127.0.0.1
accept-language:en-US,en;q=0.8
cookie:JSESSIONID=<session_ID>
有人可以帮助我如何构建这样的测试头?感谢。
答案 0 :(得分:9)
您可以将调用存根到request.getHeaders等,或者如果您可以添加依赖项,Spring-test可以使用MockHttpServletRequest
(请参阅here)
MockHttpServletRequest request = new MockHttpServletRequest();
request.addHeader("x-real-ip","127.0.0.1");
或者您可以构建自己的实现,允许您设置标题。
答案 1 :(得分:0)
以上答案使用MockHttpServletRequest
。
如果要使用Mockito.mock(HttpServletRequest.class)
,则可以按以下方式对请求进行存根。
final HttpServletResponse response = mock(HttpServletResponse.class);
when(request.getHeader("host")).thenReturn("stackoverflow.com");
when(request.getHeader("x-real-ip")).thenReturn("127.0.0.1");