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

Spring Boot接口授权测试出现404状态码断言错误的求助

Spring Boot接口授权测试出现404状态码断言错误的求助

看起来你在做Spring Boot接口的授权测试时遇到了问题——测试用例断言接口返回200,但实际拿到了404状态码对吧?我来帮你分析下可能的原因和对应的解决办法:

问题核心分析

你的测试类目前只加载了UserDetailsMock这个配置类,这会导致Spring容器中没有加载实际的Controller、Swagger配置等业务相关类,自然找不到你要测试的接口,所以返回404。

具体解决步骤

  1. 让测试类加载主应用配置
    把你的Spring Boot启动类也添加到@SpringBootTest的classes参数中,这样Spring才会扫描并加载所有业务组件(比如Controller):

    @SpringBootTest(classes = {YourApplication.class, UserDetailsMock.class}) // 替换成你项目实际的启动类
    @AutoConfigureMockMvc
    public class MuninServiceAuthorizationTest {
        // 原测试代码保持不变
    }
    
  2. 检查Swagger接口路径是否正确
    你测试的Swagger路径/swagger/ui/**可能和实际版本不匹配:

    • 如果是Swagger 3.x,正确的路径通常是/swagger-ui/**(注意是swagger-ui而非swagger/ui)
      修改后的请求构建代码:
    endpoints = Arrays.asList(
        MockMvcRequestBuilders.post("/migrate/foss").with(csrf()),
        MockMvcRequestBuilders.get("/swagger-ui/**")
    );
    
  3. 确认业务接口路径拼写正确
    检查你的/migrate/foss接口对应的Controller是否正确映射了这个路径,确保没有拼写错误或者@RequestMapping的层级问题。

额外注意点

你的UserDetailsMock配置是没问题的,@Primary注解能确保测试时优先使用这个内存用户服务,只要解决了接口存在性的问题,授权相关的测试就能正常进行啦。

备注:内容来源于stack exchange,提问作者Narjess

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 13:52:44