放心 + 模拟 MVC @ControllerAdvice

标签 rest unit-testing rest-assured mockmvc

在我的项目中,我使用 Rest Assured MockMVC 并具有以下依赖项:

<dependency>
    <groupId>com.jayway.restassured</groupId>
    <artifactId>spring-mock-mvc</artifactId>
    <version>2.9.0</version>
</dependency>

我的测试类看起来像:

TestController testController = new TestController();
@Before
public void configureRestAssuredForController() {
    RestAssuredMockMvc.standaloneSetup(testController);
}

我在 Controller 类中定义了几个 ExceptionHandler。 在我的 JUnit 测试中,我可以验证 Controller 类中定义的请求路径和处理程序。

但是 - 当我使用 @ControllerAdvice 将处理程序移动到单独的类时,处理程序不会从测试中调用。

我明白这是因为 Controller 的独立设置,它可能无法加载另一个类中定义的处理程序。

但我不知道如何在独立模式下将异常处理程序添加到 RestAssuredMockMvc 中以使其工作。

我正在挣扎,非常感谢任何帮助。

最佳答案

我将 Spring 升级到 4.3.1.RELEASE 并执行了以下操作以使其正常工作 -

GlobalControllerExceptionHandler globalControllerExceptionHandler = new GlobalControllerExceptionHandler();
    @Before 
    public void given_rest_assured_is_configured_with_cloud_study_controller()
        throws Exception {
        mockMvc = MockMvcBuilders.standaloneSetup(cloudStudyCountryController)
            .setControllerAdvice(globalControllerExceptionHandler).build();
        RestAssuredMockMvc.mockMvc(mockMvc);
        dataObj.setCloudDataObjectCreateProcessor(createprocessor);
    }

关于放心 + 模拟 MVC @ControllerAdvice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38035179/

相关文章:

java - 请求与RESTITO部分匹配

java - 如何在 RestAssured 中将基本身份验证作为请求 header 的一部分传递?

rest - 使用 RESTlet 从 Netsuite 获取特定记录类型的所有记录

php - 为什么 PHP 将 "\r\n"添加到空字符串中?

使用用户输入的密码进行 Python 单元测试

ruby-on-rails - Ruby on Rails2.3.8 : Unit Testing: Rails/Ruby has setup to run before each test. 在所有测试之前运行的方法怎么样?

javascript - 当fetch返回404时替换img url

web-services - 从 Scala 访问 REST Web 客户端有哪些好的库?

unit-testing - 如何在公共(public)类鼹鼠中转移 "non public"方法

java - 请放心,如何在 POST 请求后从响应正文中提取生成的 token 并将其设置到 header