1

最后,我设法为一些集成测试设置了上下文,并测试了需要@PathVariable 或@ModelAttribute 的方法。不过,我无法弄清楚如何设置控制器内部使用的 HTTPServletRequest。

MyController {
    @Autowired
private HttpServletRequest request;
}

在我运行测试时,请求永远不会更新。我可能会误解一些东西(就我是 Spring 新手而言)。我怎样才能做到这一点?提前感谢您的回答!

4

2 回答 2

0

HttpServletRequest不是通过方法参数传入控制器的吗?使用 @Autowired 将实例变量连接到 Spring 上下文 bean。也许你可以看看 MockHttpServletRequest 来测试 Web 控制器。

于 2013-02-25T18:18:36.870 回答
0

我没有时间填写答案:我正在使用 MockHttpServletRequest 和 Spring 3.1.2。我设法通过使用@Autowired 而不是通过从控制器获取请求bean 来解决它。像这样的东西:

mockRequest = (MockHttpServletRequest) applicationContext.getBean ("request");

希望这会帮助别人......

于 2013-02-28T19:55:35.037 回答