SpringBoot系列之整合框架JUnit
文章目录
- 一、什么是JUnit
- 二、JUnit特点
- 三、SpringBoot集成JUnit。
一、什么是JUnit
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)
二、JUnit特点
- 用于编写和运行可重复的测试。
- JUnit 测试让您可以更快地编写代码,提高质量。
- JUnit 是优雅简洁。它是不那么复杂以及不需要花费太多的时间。
- 确保测试能够在共享且固定的环境中运行,因此保证测试结果的可重复性
- 用于测试期望结果的断言(Assertion)
- 用于共享共同测试数据的测试工具
- 用于方便的组织和运行测试的测试套件。
三、SpringBoot集成JUnit。
在SpringBoot的2.2版本之后集成了JUnit5版本。
JUnit 5 的变化
JUnit5与之前的JUnit框架区别比较大,JUnit5由如下三个模块组成
JUnit Platform + JUnit Jupiter + JUnit Vintage
JUnit Platform是在jvm上启动测试框架的基础,定义了测试引擎的API,可以在cmd命令行启动这个平台。
JUnit Jupiter是新编程模块和扩展模块在junit5上写测试和扩展的组合,Jupiter子工程提供在平台上跑Jupiter的测试引擎。
JUnit Vintage提供跑junit3和junit4的测试引擎。
junit5需要java8及以上的版本。但是可以测试用以前的jdk版本编译过的代码。
而SpringBoot2.2版本之后只需要使用注解@SpringBootTest
,@Test
导包为org.junit.jupiter.api.Test
。即导入@Test导包为org.junit.jupiter.api.Test则不用加@RunWith(SpringRunner.class)
注解。
@SpringBootTest(classes = Main.class)//springboot测试类
public class UserServiceTest {
@Autowired
UserService userService;
@Test
public void test(){
userService.addUser();
}
}
而SpringBoot2.2版本之前则需要@SpringBootTest@RunWith(SpringRunner.class)
才能加载Spring容器进行测试
@SpringBootTest(classes = Main.class)//springboot测试类
@RunWith(SpringRunner.class)//junit 框架整合
public class UserServiceTest {
@Autowired
UserService userService;
@Test
public void test(){
userService.addUser();
}
}