在我的项目中,我使用 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/