【发布时间】:2013-11-15 19:43:01
【问题描述】:
在我的 web.xml 中,我将 servlet 映射到 /api,如下所示:
<servlet-mapping>
<servlet-name>todo</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>todo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
所以对于使用@RequestMapping(value = "/todo", method = RequestMethod.GET) 的控制器,它实际上被映射到“/api/todo”
但是在测试中,当我调用 mockMvc.perform(get("/api/todo/")) 时,我得到了 404。我必须调用 get("/todo/") 才能在测试中获得正确的映射。我希望像在实际场景中一样在测试中映射控制器。这可能吗?
我在测试中使用WebMvcConfigurerAdapter 并尝试过
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/api/**").addResourceLocations("/");
}
但是没有用。
【问题讨论】:
标签: java spring unit-testing spring-mvc integration-testing