为Junit测试构建简单的http头

问题描述 投票:8回答:2

我想测试一个 HttpServletRequest 为此,我使用了 莫基托 如下所示。

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>

有谁能帮助我如何建立这样一个测试头吗,谢谢。

java servlets junit mocking
2个回答
12
投票

你可以只存根调用request.getHeaders等,或者如果你可以添加一个依赖关系。春季测试 拥有 MockHttpServletRequest 您可以使用的(见 此处)

MockHttpServletRequest request = new MockHttpServletRequest();
request.addHeader("x-real-ip","127.0.0.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");
© www.soinside.com 2019 - 2024. All rights reserved.