You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot控制器测试报SecurityAutoConfiguration.class不存在如何解决

问题分析

报错核心原因是Spring Boot测试启动时默认加载安全模块的自动配置类SecurityAutoConfiguration,但当前项目环境中不存在该类对应的依赖包,同时测试类存在注解配置冲突的问题。

解决方案
    1. 修正测试注解冲突
      现有代码同时使用了@SpringBootTest和@ContextConfiguration两个上下文配置注解,二者逻辑冲突会导致配置加载异常。如果仅做Controller层单元测试,推荐使用更轻量的@WebMvcTest注解替代原有组合注解,@WebMvcTest已经默认集成了MockMvc的自动装配,不需要额外添加@AutoConfigureMockMvc注解,Spring Boot 2.2+版本也不需要额外添加@RunWith注解,示例配置如下:
    @WebMvcTest(value = PersonController.class, excludeAutoConfiguration = {
        org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
        org.springframework.boot.autoconfigure.security.servlet.SecurityFilterAutoConfiguration.class
    })
    @ActiveProfiles("test")
    public class PersonControllerTest {
        // 原有测试逻辑保留
    }
    
    1. 修正配置类拼写错误
      原有@ContextConfiguration中配置的PersonCOnfig类名大小写错误,正确应为PersonConfig,如果确实需要引入自定义配置,可在@WebMvcTest中通过@Import(PersonConfig.class)引入即可。
    1. 修复断言语法错误
      测试方法中jsonPath的写法缺少层级分隔符,$id需要修改为$.id,其余$name、$lastName等字段同理,否则即使项目启动成功,断言也会执行失败。
    1. 可选依赖补充
      如果项目实际需要使用Spring Security能力,可在pom.xml(Maven)中引入对应starter依赖即可解决类找不到的问题:
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    

内容的提问来源于stack exchange,提问作者Raghu Palakodety

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:54:03