有没有办法测试转发的功能:/ View是否在JUnit测试中从Spring MVC控制器返回?
我正在使用Spring 3.2中的MockMvc功能,在某些情况下我的控制器转发到另一个(通过返回视图名称forward:/ pathHandledByController).
能够断言当发生这种转发时,应用来自第二个控制器的所有@ModelAttributes并且一切都正确处理,这真是太棒了.不幸的是,MockMvc只允许我声明返回的视图名称以forward:/开头.
有没有什么方法可以测试这个,而不用像Jetty这样的整个网络应用程序?我有很多服务探测到MVC应用程序,我如何创建一个使用单独的Spring配置(来自src / test / resources)与这些服务的模拟的web应用程序?
解决方法:
你可以使用forwardedUrl
匹配器:
mockMvc.perform(get("/controller/path"))
.andExpect(forwardedUrl("/forwarded/url"));