我正在尝试为集成测试创建模拟请求(@springboottest)。
//given
MockHttpServletRequestBuilder requestBuilder = get("/users/register/user1");
我要检查的是这个请求的遥控器。在我的控制器中,我从httpservletrequest获取这个信息
HttpServletRequest request;
request.getRemoteHost();
request.getRemoteAddr();
不幸的是现在 getRemoteHost()
将始终返回localhost。
我想在模拟请求中将其更改为其他内容,例如:
远程主机: localhost
--> mockhostdomain
远程地址: 127.0.0.1
--> 10.32.120.7
(有什么不同)
我找不到合适的方法。有可能吗?
2条答案
按热度按时间wf82jlnq1#
我终于找到了解决办法:
https://techotom.wordpress.com/2014/11/12/mocking-remoteaddr-with-spring-mvc/
基本上用这个方法我们可以改变请求的每个参数。
因此,首先我们必须定义更改请求内容的方法:
而不是用方法
with(...)
在MockHttpServletRequestBuilder
对象我们必须注入这个方法的结果。wtzytmuj2#
使用mockmvc,您可以执行以下操作: