Spring 整合 Junit 单元测试类
普通 Junit 测试问题#
在普通的测试类中,需要开发者手动加载配置文件并创建 Spring 容器,然后通过 Spring 相关 API 获得Bean实例;如果不这么做,那么无法从容器中获得对象。
// 获取到 spring 上下文对象,借助上下文对象可以获取到 IOC 容器中的 bean 对象
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
// 使用上下文对象从容器中获取 到 bean 对象
IUserService userService = (IUserService) applicationContext.getBean("userService");
我们可以 SpringJunit 负责创建 Spring 容器来简化这个操作,开发者可以直接在测试类注入Bean实例;但是需要将配置文件的名称告诉它。
Spring 整合 Junit#
步骤分析
- 导入 Spring 集成 Junit的坐标
此处需要注意的是, spring5 及上版本要求 Junit 的版本必须是 4.12 及以上
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.10</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
- 使用 @RunWith 注解替换原来的运行器
@RunWith(SpringJUnit4ClassRunner.class)`
@RunWith 指定 Junit 的运行环境
SpringJUnit4ClassRunner 是 Spring 提供的做为 Junit 运行环境的类
- 使用 @ContextConfiguration 指定配置文件或配置类
xml 开发
@ContextConfiguration({"classpath:applicationContext.xml"})
纯注解开发
@ContextConfiguration(classes = {核心配置类的class})
- 使用 @Autowired 注入需要测试的对象
- 创建测试方法进行测试
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)