【发布时间】:2013-08-31 10:55:32
【问题描述】:
鉴于我已经继承了一些带有签名的 Spring MVC 控制器代码
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public ModelAndView upload(HttpServletRequest request, HttpServletResponse response) {
String remoteAddress = request.getRemotedAddr();
auditService.logAddress(remoteAddress);
// do work...
return mav;
}
我有一个执行测试的 Spring MockMvc 测试
public void someTest() {
mockMvc().perform(fileUpload("/upload").file(FileFactory.stringContent("myFile")));
// do work...
verify(auditService.logAddress("123456"));
}
我需要在传递给我的上传控制器方法的 HttpServletRequest 对象上将远程地址设置为“12345”,以便在测试中验证对模拟 auditService 的调用。
我可以创建一个 MockHttpServletRequest 对象并调用 setRemoteAddr() 方法,但是如何将这个模拟请求对象传递给 mockMvc() 方法调用呢?
【问题讨论】:
标签: spring spring-mvc controller mocking integration-testing