在Spring MVC App中测试转发

Eng*_*_DJ 5 junit spring jetty spring-mvc spring-mvc-test

有什么方法forward:/可以在JUnit测试中测试从Spring MVC控制器返回的视图的功能?

我使用的MockMvc是Spring 3.2中的功能,在某些情况下,我的控制器会转发到另一个(通过返回的视图名称forward:/pathHandledByController)。

能够断言,在进行此转发时,将@ModelAttribute很好地应用了第二个控制器中的所有s,并且所有过程均正常进行。不幸的是MockMvc,我只能断言返回的视图名称以开头forward:/

有什么方法可以测试而不必像Jetty那样分解整个Web应用程序吗?我已经将许多服务纳入了MVC应用程序,我将如何创建一个使用单独的Spring配置(来自src/test/resources)并模拟这些服务的Web应用程序?

mty*_*urt 5

您可以使用forwardedUrl匹配器:

 mockMvc.perform(get("/controller/path"))
    .andExpect(forwardedUrl("/forwarded/url"));
Run Code Online (Sandbox Code Playgroud)