Skip to content
发布于 更新于

1. 背景 ​

使用Apollo作为Spring.properties文件载体时,在本地写单元测试时, 又不想使用最大应用启动类作为@SpringBootTest的加载入口, 希望可以单测哪个类,就加载哪些类,但是像一些Service都会有Mapper进行数据库访问, 引入这些数据库时,会有用到一个配置文件。所以 一个方法就是在@SpringBootTest注解中引用Apollo的加载类, 在测试时,把配置文件也加载到Spring容器中。

2. 示例 ​

shell
@SpringBootTest(classes{com.ctrip.framework.apollo.spring.boot.ApolloAutoConfiguration.class})

3. 使用建议 ​

  • 单测目标如果只是校验某个 Service,不要直接把整个启动类都拉进来。
  • 把 Apollo 自动配置和必要 Bean 显式引入,能减少上下文体积。
  • 如果 Mapper、数据源、配置中心耦合较深,建议再补一层测试配置类统一管理。

4. 常见问题 ​

  • 配置没生效:通常是 Apollo 配置类没被加载。
  • 启动太重:通常是把完整 Spring Boot 应用一起拉起来了。
  • 单测不稳定:通常是外部依赖没有 mock 或环境隔离不彻底。

基于 VitePress + GitHub Actions 自动部署