10

我正在尝试测试 aHttpServletRequest并且为此我使用 了 Mockito,如下所示:

HttpServletRequest  mockedRequest = Mockito.mock(HttpServletRequest.class);

现在在将 http-request 放入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>

有人可以帮助我如何构建这样的测试头吗?谢谢。

4

2 回答 2

14

你可以只对 request.getHeaders 等的调用存根,或者如果你可以添加一个依赖项,Spring-test有一个MockHttpServletRequest你可以使用的(见这里

MockHttpServletRequest request = new MockHttpServletRequest();
request.addHeader("x-real-ip","127.0.0.1");

或者您可以构建自己的实现,允许您设置标题。

于 2013-09-19T08:43:11.493 回答
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");
于 2020-05-13T06:40:12.017 回答