最后,我设法为一些集成测试设置了上下文,并测试了需要@PathVariable 或@ModelAttribute 的方法。不过,我无法弄清楚如何设置控制器内部使用的 HTTPServletRequest。
MyController {
@Autowired
private HttpServletRequest request;
}
在我运行测试时,请求永远不会更新。我可能会误解一些东西(就我是 Spring 新手而言)。我怎样才能做到这一点?提前感谢您的回答!
最后,我设法为一些集成测试设置了上下文,并测试了需要@PathVariable 或@ModelAttribute 的方法。不过,我无法弄清楚如何设置控制器内部使用的 HTTPServletRequest。
MyController {
@Autowired
private HttpServletRequest request;
}
在我运行测试时,请求永远不会更新。我可能会误解一些东西(就我是 Spring 新手而言)。我怎样才能做到这一点?提前感谢您的回答!
HttpServletRequest不是通过方法参数传入控制器的吗?使用 @Autowired 将实例变量连接到 Spring 上下文 bean。也许你可以看看 MockHttpServletRequest 来测试 Web 控制器。
我没有时间填写答案:我正在使用 MockHttpServletRequest 和 Spring 3.1.2。我设法通过使用@Autowired 而不是通过从控制器获取请求bean 来解决它。像这样的东西:
mockRequest = (MockHttpServletRequest) applicationContext.getBean ("request");
希望这会帮助别人......