Spring端到端测试包括使用MockHttpServletRequest的过滤器和控制器方法

时间:2014-03-03 16:53:50

标签: java spring spring-mvc spring-test

我正在尝试编写更多端到端的Spring测试,它将测试我的过滤器和与给定请求相关的控制器方法。我试过RequestMappingHandlerAdapter.handle(),但这并没有调用过滤器。如果我有一个具有给定路径的MockHttpServletRequest,我需要使用哪些类?我不想调用doFilter后跟句柄。相反,我希望调用最终调用这两种方法的代码。

编辑:需要在Spring 3.1中工作。

1 个答案:

答案 0 :(得分:3)

使用MockMvcBuilders设置MockMvc时,您可以注册过滤器。

MockMvc mockMvc = MockMvcBuilders
          .webAppContextSetup(webApplicationContext)
          .addFilter(filter, urlPatterns);

javadoc有更多详情。这种注册过滤器的方法(mock-)等同于web.xml配置。例如

<filter-mapping>
    <filter-name>filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>