当前位置: 首页 > news >正文

@ContextConfiguration

@ContextConfiguration 是 Spring Test 框架 提供的注解,用来告诉测试类 “Spring 容器启动时去哪里拿配置”
没有它,测试就跑在 纯 JVM 里;加上它,测试就跑在 Spring 上下文(ApplicationContext) 里,可以 @Autowired 直接注入 Bean。


一、放在哪儿

@RunWith(SpringRunner.class)          // JUnit 4 写法
// 或 @ExtendWith(SpringExtension.class)  // JUnit 5 写法
@ContextConfiguration(...)
public class XxxServiceTest {}

二、三种常见“拿配置”方式

  1. XML 文件

    @ContextConfiguration(locations = "classpath:beans.xml")
    
  2. Java Config 类

    @ContextConfiguration(classes = AppConfig.class)
    
  3. 默认策略(推荐 Spring Boot)

    @SpringBootTest   // 已经组合了 @ContextConfiguration,自动找 @SpringBootApplication
    

三、还能干什么

属性示例说明
locations"classpath:dao.xml"加载 XML
classesAppConfig.class加载 @Configuration 类
initializersMyInitializer.class自定义 ApplicationContextInitializer
inheritLocationsfalse子测试类是否继承父类的配置

四、完整示例(JUnit 5)

@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = {ServiceConfig.class, DaoConfig.class})
@Transactional
class UserServiceTest {@Autowiredprivate UserService userService;@Testvoid createUser() {userService.create("Tom");assertEquals(1, userService.count());}
}

一句话总结
@ContextConfiguration 就是 Spring 测试的“启动入口” ——告诉测试框架:“用这些 XML 或 Java 配置去创建 Spring 容器,然后再跑我的测试。”

http://www.xdnf.cn/news/1282321.html

相关文章:

  • 嵌入式学习的第四十八天-中断+OCP原则
  • 矩阵游戏(二分图最大匹配)
  • 新人该如何将不同的HTML、CSS、Javascript等文件转化为Vue3文件架构
  • 大数据量下分页查询性能优化实践(SpringBoot+MyBatis-Plus)
  • Linux操作系统从入门到实战(十九)进程状态
  • HyperMesh许可使用监控
  • 从“目标烂尾”到“100%交付”:谷歌OKR追踪系统如何用“透明化+强问责”打造职场责任闭环
  • MD5:理解MD5 / MD5核心特性 / MD5 在前端开发中的常见用途 / 在线生成MD5 / js-md5
  • Spring Boot 2.6.0+ 循环依赖问题及解决方案
  • Android 16 的用户和用户组定义
  • JS深拷贝 浅拷贝、CSS垂直水平居中
  • 计算机网络---交换机
  • 算法73. 矩阵置零
  • 正则表达式:文本模式的数学语言与编程工具
  • ​费马小定理​
  • 关于微信小程序的笔记
  • 简单Modules 的配置与管理,灵活应对多版本软件环境的需求。
  • 借助 ChatGPT 快速实现 TinyMCE 段落间距与行间距调节
  • 验证二叉搜索树
  • 【PRML】分类
  • CI/CD渗透测试靶场
  • 分享一款基于STC32G12K128单片机的螺丝机供料器控制板 ES-IO2422 S4
  • 深入解析Linux poll()系统调用
  • 内网依赖管理新思路:Nexus与CPolar的协同实践
  • 自动化备份全网服务器数据平台项目
  • 深入理解Android Kotlin Flow:响应式编程的现代实践
  • 《算法导论》第 18 章 - B 树
  • 银河通用招人形机器人强化学习算法工程师了
  • openEuler、 CentOS、Ubuntu等 Linux 系统中,Docker 常用命令总结
  • MySQL-锁