【发布时间】:2021-08-13 06:53:23
【问题描述】:
我创建了一个用@ControllerAdvice 和@ResponseBody 注释的类MyExceptionHandler 来处理异常,因为这是Spring Boot 中的常见做法。
现在我将这个类移到一个初学者中,我包含在几个项目中,所以它们都使用相同的基本异常处理。当我正常启动 Spring Boot 应用程序时,这工作正常。
当我执行一个带有注释的测试时:
@ExtendWith(SpringExtension.class)
@AutoConfigureMockMvc
@WebMvcTest(controllers = SomeController.class)
启动器中的 ControllerAdvice 未激活,因此我无法测试我的错误响应。
当我在我的项目中创建MyExceptionHandler 的子类并使用@ControllerAdvice 和@ResponseBody 注释该类时,一切正常。
我如何确保在我的测试期间,启动器中的 ControllerAdvice 被激活?
【问题讨论】:
-
你可以试试这个
@Import(YourControllerAdvice.class) -
是的。 @Import 有效。我真正不喜欢的是,我必须在每个测试中添加一些东西才能使其正常工作。一个通用的解决方案会更好。
标签: java spring spring-boot