Spring 整合 Junit 单元测试类

普通 Junit 测试问题

在普通的测试类中,需要开发者手动加载配置文件并创建 Spring 容器,然后通过 Spring 相关 API 获得 Bean 实例;如果不这么做,那么无法从容器中获得对象。

1
2
3
4
// 获取到 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 及以上

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <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>
  2. 使用 @RunWith 注解替换原来的运行器

    1
    @RunWith(SpringJUnit4ClassRunner.class)`

    @RunWith 指定 Junit 的运行环境
    SpringJUnit4ClassRunner 是 Spring 提供的做为 Junit 运行环境的类

  3. 使用 @ContextConfiguration 指定配置文件或配置类
    xml 开发

    1
    @ContextConfiguration({"classpath:applicationContext.xml"})

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

  4. 使用 @Autowired 注入需要测试的对象

  5. 创建测试方法进行测试