目录

Spring6 - Junit

# 单元测试 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
更新时间: 2024/01/17, 05:48:13
最近更新
01
JVM调优
12-10
02
jenkins
12-10
03
Arthas
12-10
更多文章>