Haoyuan's blog Haoyuan's blog
首页
导航站
  • Java基础

    • Java基础
    • Java集合
    • Java反射
    • JavaJUC
    • JavaJVM
  • Java容器

    • JavaWeb
  • Java版本新特性

    • Java新特性
  • SQL 数据库

    • MySQL
    • Oracle
  • NoSQL 数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • ActiveMQ
    • RabbitMQ
    • RocketMQ
    • Kafka
  • 进阶服务

    • Nginx
  • Spring
  • Spring Boot
  • Spring Security
  • Spring Cloud
  • 设计模式
  • 算法
  • 知识
  • 管理

    • Maven
    • Git
  • 部署

    • Linux
    • Docker
    • Jenkins
    • Kubernetes
  • 进阶

    • TypeScript
  • 框架

    • React
    • Vue2
    • Vue3
  • 轮子工具
  • 项目工程
  • 友情链接
  • 本站

    • 分类
    • 标签
    • 归档
  • 我的

    • 收藏
    • 关于
留言区
GitHub (opens new window)

Somnus Haoyuan

Word is cheap, show me the code.
首页
导航站
  • Java基础

    • Java基础
    • Java集合
    • Java反射
    • JavaJUC
    • JavaJVM
  • Java容器

    • JavaWeb
  • Java版本新特性

    • Java新特性
  • SQL 数据库

    • MySQL
    • Oracle
  • NoSQL 数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • ActiveMQ
    • RabbitMQ
    • RocketMQ
    • Kafka
  • 进阶服务

    • Nginx
  • Spring
  • Spring Boot
  • Spring Security
  • Spring Cloud
  • 设计模式
  • 算法
  • 知识
  • 管理

    • Maven
    • Git
  • 部署

    • Linux
    • Docker
    • Jenkins
    • Kubernetes
  • 进阶

    • TypeScript
  • 框架

    • React
    • Vue2
    • Vue3
  • 轮子工具
  • 项目工程
  • 友情链接
  • 本站

    • 分类
    • 标签
    • 归档
  • 我的

    • 收藏
    • 关于
留言区
GitHub (opens new window)
  • Spring

    • Spring6 - 概述
    • Spring6 - 入门
    • Spring6 - 容器
    • Spring6 - 手写容器
    • Spring6 - AOP
    • Spring6 - Junit
      • 单元测试 JUnit
      • 整合JUnit5
        • 搭建子模块
        • 引入依赖
        • 添加配置文件
        • 添加 Java 类
        • 测试
      • 整合 JUnit4
        • 添加依赖
        • 测试
    • Spring6 - 事务
    • Spring6 - Resource
    • Spring6 - 国际化
    • Spring6 - 数据校验
    • Spring - Cache
  • Spring MVC

  • Spring Boot

  • Spring Security

  • Spring Cloud

  • Spring生态
  • Spring
Haoyuan
2023-10-28
目录

Spring6 - Junit

  • 单元测试 JUnit
  • 整合JUnit5
    • 搭建子模块
    • 引入依赖
    • 添加配置文件
    • 添加 Java 类
    • 测试
  • 整合 JUnit4
    • 添加依赖
    • 测试

# 单元测试 JUnit

在之前的测试方法中,几乎都能看到以下的两行代码:

ApplicationContext context = new ClassPathXmlApplicationContext("xxx.xml");
Xxxx xxx = context.getBean(Xxxx.class);
1
2

这两行代码的作用是创建 Spring 容器,最终获取到对象,但是每次测试都需要重复编写。针对上述问题,我们需要的是程序能自动帮我们创建容器。我们都知道 JUnit 无法知晓我们是否使用了 Spring 框架,更不用说帮我们创建 Spring 容器了。Spring 提供了一个运行器,可以读取配置文件(或注解)来创建容器。我们只需要告诉它配置文件位置就可以了。这样一来,我们通过 Spring 整合 JUnit 可以使程序创建 Spring 容器了

# 整合JUnit5

# 搭建子模块

搭建 Spring-junit 模块

# 引入依赖

<dependencies>
    <!--Spring context 依赖-->
    <!--当你引入 Spring Context 依赖之后,表示将 Spring 的基础依赖引入了-->
    <dependency>
        <groupId>org.Springframework</groupId>
        <artifactId>Spring-context</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!--Spring 对 junit 的支持相关依赖-->
    <dependency>
        <groupId>org.Springframework</groupId>
        <artifactId>Spring-test</artifactId>
        <version>6.0.2</version>
    </dependency>

    <!--junit5 测试-->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.9.0</version>
    </dependency>

    <!--log4j2 的依赖-->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.19.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j2-impl</artifactId>
        <version>2.19.0</version>
    </dependency>
</dependencies>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

# 添加配置文件

Beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<Beans xmlns="http://www.Springframework.org/schema/Beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.Springframework.org/schema/context"
       xsi:schemaLocation="http://www.Springframework.org/schema/Beans http://www.Springframework.org/schema/Beans/Spring-Beans.xsd
                           http://www.Springframework.org/schema/context http://www.Springframework.org/schema/context/Spring-context.xsd">
    <context:component-scan base-package="cn.youngkbt.Spring6.Bean"/>
</Beans>
1
2
3
4
5
6
7
8

copy 日志文件:log4j2.xml

# 添加 Java 类

package cn.youngkbt.Spring6.Bean;

import org.Springframework.stereotype.Component;

@Component
public class User {

    public User() {
        System.out.println("run user");
    }
}
1
2
3
4
5
6
7
8
9
10
11

# 测试

import cn.youngkbt.Spring6.Bean.User;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.Springframework.Beans.factory.annotation.Autowired;
import org.Springframework.test.context.ContextConfiguration;
import org.Springframework.test.context.junit.jupiter.SpringExtension;
import org.Springframework.test.context.junit.jupiter.SpringJUnitConfig;

// 两种方式均可
// 方式一
// @ExtendWith(SpringExtension.class)
// @ContextConfiguration("classpath:Beans.xml")
// 方式二
@SpringJUnitConfig(locations = "classpath:Beans.xml")
public class SpringJUnit5Test {

    @Autowired
    private User user;

    @Test
    public void testUser(){
        System.out.println(user);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 整合 JUnit4

JUnit4 在公司也会经常用到,在此也学习一下

# 添加依赖

<!-- junit 测试 -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>
1
2
3
4
5
6

# 测试

import cn.youngkbt.Spring6.Bean.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.Springframework.Beans.factory.annotation.Autowired;
import org.Springframework.test.context.ContextConfiguration;
import org.Springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:Beans.xml")
public class SpringJUnit4Test {

    @Autowired
    private User user;

    @Test
    public void testUser(){
        System.out.println(user);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
编辑此页 (opens new window)
#Spring6
更新时间: 2025/04/06, 01:04:59
Spring6 - AOP
Spring6 - 事务

← Spring6 - AOP Spring6 - 事务→

最近更新
01
技术随笔 - Element Plus 修改包名 原创
11-02
02
Reactor - 扩展性
11-02
03
Reactor - 最佳实践
11-02
更多文章>
Theme by Vdoing | Copyright © 2021-2025 Somnus Haoyuan | MIT License
京公网安备 11010802034042号 京ICP备2025120692号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式