java - Spring 模拟 MVC 单元测试和 Controller 建议

标签 java spring unit-testing spring-mvc spring-test

我正在尝试测试我的 Controller 建议异常处理。我已将 Controller 建议注册到我的mockmvc:

mockMvc = MockMvcBuilders.standaloneSetup(controller)
            .setControllerAdvice(new ExceptionHandlingControllerAdvice())
            .build();

我可以在控制台中看到测试正在获取异常处理方法:

org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver Detected @ExceptionHandler methods in com.myapp...ExceptionHandlingControllerAdvice

ExceptionHandlingControllerAdvice 类有一个安全异常的处理程序方法:

@ExceptionHandler(SecurityException.class)

当我的单元测试抛出 SecurityException 时,测试失败并显示堆栈跟踪,而不是调用 Controller 建议中的处理程序方法。

我是不是做错了什么?

最佳答案

使用

注释您的 Spring 模拟 mvc 测试
@ImportAutoConfiguration(YourControllerAdvice.class)

关于java - Spring 模拟 MVC 单元测试和 Controller 建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48380059/

相关文章:

java - JpaRepository 从 postgres 表中读取多次行

unit-testing - 您如何编写涉及数据库的单元测试?

c# - 如果是存储过程,我应该如何让我的 mockContext.Setup 返回?

java - 使用通用 java 类时出现 InstantiationException

java - 升级还是不升级

java - 拆分字符串以仅获取数字数组(转义空白和空格)

angular - 单元测试错误: 'X' is not a known element

java - 将 Grails War 文件安装到远程服务器,包括 mysql 数据库

java - 当我尝试在 CRUD Spring boot 应用程序中添加新客户端时,捕获 NullPointerException

java - 找不到 Spring MVC 带注释的 Controller