整合 JUnit 单元测试框架
Ⅰ 前言
Spring 基础文章回顾:
【Java Web】-> Spring 5 -> Spring 的下载 & 第一个样例
【Java Web】 -> Spring 5 -> IOC 底层原理
【Java Web】 -> Spring 5 ->IOC 操作 -> Bean 管理 ->关于 IOC 的一切就在这里了
【Java Web】-> Spring 5 -> JdbcTemplate
【Java Web】 -> Spring 5 -> Spring TX -> 详解事务管理
【Java Web】-> Spring 5 -> Spring 5 新功能 -> 对 Log4j2 日志的整合
Spring 5 支持了对 JUnit5 的整合,这篇文章将分别演示一下对 JUnit4 和 JUnit5 的整合。
Ⅱ Spring 整合 JUnit4
在我的 Spring 前面的基础文章中,我们的单元测试都是这么写的:
每次都需要根据配置文件,或者是配置类,得到 ApplicationContext
对象,然后根据这个对象来得到我们需要的类对象,每次都要写这两行。
使用对 JUnit 框架整合的话,将会更方便地进行单元测试。
首先我们需要引入一个依赖:
对应的 Maven为:
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.6.RELEASE</version>
<scope>test</scope>
</dependency>
然后我们可以创建一个测试类,使用注解方式完成。
然后我们可以得到 UserService 对象,直接使用 IOC 的@Autowired
注解就可以了。
下面我们来写测试方法。
直接调用 service 的方法就可以了,这样就避免了之前的测试方式每次都要加载配置文件然后获得对象。
Ⅲ Spring 整合 JUnit5
首先我们先引入 JUnit5 的 jar 包。
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.1</version>
<scope>test</scope>
</dependency>
JUnit5 区别于 JUnit4 的是上面的注解,不再是 @RunWith
而是 @ExtendWith
。
注意 JUnit5 的测试方法的注解 @Test
和 JUnit4 是不同的。
JUnit5 中还有一个复合注解,就不需要写两个注解了。效果和上面是一样的。