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#

步骤分析

  1. 导入 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>
  1. 使用 @RunWith 注解替换原来的运行器
@RunWith(SpringJUnit4ClassRunner.class)`
@RunWith 指定 Junit 的运行环境 
SpringJUnit4ClassRunner 是 Spring 提供的做为 Junit 运行环境的类 
  1. 使用 @ContextConfiguration 指定配置文件或配置类
    xml 开发
@ContextConfiguration({"classpath:applicationContext.xml"})

纯注解开发
@ContextConfiguration(classes = {核心配置类的class})

  1. 使用 @Autowired 注入需要测试的对象
  2. 创建测试方法进行测试
posted @   白日醒梦  阅读(81)  评论(0编辑  收藏  举报
编辑推荐:
· 基于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)
点击右上角即可分享
微信分享提示
主题色彩