spring - 在 Spring MVC 应用程序中测试转发

标签 spring spring-mvc junit jetty spring-mvc-test

有什么方法可以测试 forward:/ 的功能吗?在 JUnit 测试中从 Spring MVC Controller 返回的 View ?

我正在使用 MockMvc Spring 3.2 的功能和我的 Controller 在某些情况下转发到另一个(通过返回 View 名称 forward:/pathHandledByController )。

能够断言当这种转发发生时,所有 @ModelAttribute 都很棒。应用了第二个 Controller 中的 s 并且一切正常。不幸的是MockMvc只让我断言返回的 View 名称以 forward:/ 开头.

有什么方法可以测试这个而不用像 Jetty 这样的东西启动整个网络应用程序吗?我在 MVC 应用程序中有很多服务,我将如何创建一个使用单独的 Spring 配置(来自 src/test/resources)和这些服务的模拟的 web 应用程序?

最佳答案

您可以使用 forwardedUrl 匹配器:

 mockMvc.perform(get("/controller/path"))
    .andExpect(forwardedUrl("/forwarded/url"));

关于spring - 在 Spring MVC 应用程序中测试转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16809096/

相关文章:

java - Spring MVC 中的数据绑定(bind)错误处理

java - Spring 参数不起作用

java - Spring Security 禁用从某个 url 发出的请求的安全性

java - Spring-amqp - 消息处理延迟

spring - Spring 中的两个实体管理器

java - 单元测试未初始化

junit - JUnit 消息的格式化

java - 在哪里放置 Maven 参数化 junit 输入 xml 文件

spring - 无法从 Java Spring 中的 RSS Feed 接收数据

java - 测试时为类提供了错误类型的 id