在Spring MVC App中测试转发

有没有办法测试转发的功能:/ 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"));
上一篇:java – 使用Jetty / Jersey / Guice提供静态内容


下一篇:java-Spring框架最佳实践:部署不符合Bean的组件