Spring6 - Junit
# 单元测试 JUnit
在之前的测试方法中,几乎都能看到以下的两行代码:
ApplicationContext context = new ClassPathXmlApplicationContext("xxx.xml");
Xxxx xxx = context.getBean(Xxxx.class);
1
2
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
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
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
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
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
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
编辑此页 (opens new window)
更新时间: 2023/10/27, 16:55:50