如何在Spring MVC REST测试中重定向模拟重定向请求?

美国国家科学基金会

在我的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("/");
}

但这没用。

Sotirios Delimanolis

在设置MockMvc配置时,您会注意到没有指定部署描述符的位置web.xml。那是因为MockMvc不会测试您对的配置DispatcherServlet它测试您的MVC配置,@Controllerbean等。

如果您查看源代码,则MockMvc创建一个TestDispatcherServlet加载并使用您的Web应用程序上下文。

换句话说,Servleturl-pattern路径与无关MockMvc您发出的请求就好像没有这样的路径。

你说

我希望像实际情况一样在测试中映射控制器。

您将需要使用其他测试策略。完全部署您的Web应用程序,并使用HTTP客户端发出请求并验证您获得的回报。

您已标记了unit-testing完整环境中的测试不是单元测试,而是集成和系统测试。


请注意

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/api/**").addResourceLocations("/");
}

与以上无关。其目的是从Web应用程序中的某些路径提供静态资源。它与您的servleturl-pattern或控制器的路径无关

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Spring MVC中重定向到子域

来自分类Dev

如何通过MVC中的重定向发出POST请求?

来自分类Dev

Spring MVC:在@ResponseBody中重定向

来自分类Dev

Spring MVC:在@ResponseBody中重定向

来自分类Dev

Spring MVC URL重定向

来自分类Dev

Spring MVC重定向问题

来自分类Dev

如何避免Spring Web MVC中的重定向循环

来自分类Dev

如何重定向到 Spring MVC 中的视图

来自分类Dev

如何防止Spring MVC进行重定向?

来自分类Dev

Spring MVC Rest URL和URL重定向

来自分类Dev

如何在Spring-MVC中传递参数以重定向页面

来自分类Dev

Spring MVC中的重定向错误(http状态404请求的资源不可用jsp)

来自分类Dev

Spring MVC中的重定向和视图呈现之间的区别

来自分类Dev

Spring MVC中POST方法后重定向

来自分类Dev

如何在grails中重定向请求

来自分类Dev

在angular中调用$ post时如何使用MVC重定向

来自分类Dev

如何使用AngularJS重定向ASP MVC中的页面?

来自分类Dev

如何从旧链接重定向到MVC中的新链接

来自分类Dev

如何使用AngularJS重定向ASP MVC中的页面?

来自分类Dev

Thymeleaf + Spring MVC发布/重定向/获取

来自分类Dev

Spring MVC重定向属性消息

来自分类Dev

Spring MVC-处理重定向

来自分类Dev

Thymeleaf + Spring MVC发布/重定向/获取

来自分类Dev

如何重定向到MVC页面

来自分类Dev

如何在表单提交后在Spring MVC控制器中的同一选项卡中重定向

来自分类Dev

如何pdf文件和重定向下载首页Spring MVC中

来自分类Dev

如何使用Spring MVC重定向到jQuery Ajax调用中的视图

来自分类Dev

我如何在MVC中的post方法之后实现这种重定向

来自分类Dev

如何在MVC 2中的重定向到动作时传递列表值

Related 相关文章

热门标签

归档