目录
[3.Spring Boot单元测试使⽤](#3.Spring Boot单元测试使⽤)
[1. ⽣成单元测试类](#1. ⽣成单元测试类)
[2. 添加单元测试代码](#2. 添加单元测试代码)
[2.1 .添加Spring Boot框架测试注解:@SpringBootTest](#2.1 .添加Spring Boot框架测试注解:@SpringBootTest)
[2.2 添加单元测试业务逻辑](#2.2 添加单元测试业务逻辑)
1.什么是单元测试?
单元测试(unit testing),是指对软件中的最⼩可测试单元 进⾏检查 和验证的过程就叫单元测试。
单元测试是开发者编写的⼀⼩段代码,⽤于检验被测代码的⼀个很⼩的、很明确的(代码)功能是否正确。执⾏单元测试就是为了证明某段代码的执⾏结果是否符合我们的预期。如果测试结果符合我们的预期,称之为测试通过,否则就是测试未通过(或者叫测试失败)。
2.单元测试有哪些好处?
- 1、可以⾮常简单、直观、快速的测试某⼀个功能是否正确。
- 2、使⽤单元测试可以帮我们在打包的时候,发现⼀些问题,因为在打包之前,所以的单元测试必须通过,否则不能打包成功。
- 3、使⽤单元测试,在测试功能的时候,可以不污染连接的数据库,也就是可以不对数据库进⾏任何改变的情况下,测试功能。
3.Spring Boot单元测试使⽤
Spring Boot项⽬创建时会默认单元测试框架 spring-boot-test,⽽这个单元测试框架主要是依靠另个著名的测试框架JUnit 实现的,打开pom.xml就可以看到,以下信息是Spring Boot项⽬创建是⾃动添加的:
java
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.0</version>
</dependency>
⽽spring-boot-starter-test 的 MANIFEST.MF(Manifest ⽂件是⽤来定义扩展或档案打包的相关信息
的)⾥⾯有具体的说明,如下信息所示:
单元测试的实现步骤
1. ⽣成单元测试类
最终生成的代码:
java
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class UserMapperTest {
@Test
void selectAll() {
}
}
这个时候,此⽅法是不能调⽤到任何单元测试的⽅法的,此类只⽣成了单元测试的框架类,具体的业务代码要⾃⼰填充。
2. 添加单元测试代码
2.1 .添加Spring Boot框架测试注解:@SpringBootTest
2.2 添加单元测试业务逻辑
java
import com.example.demo.model.UserInfo;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
@SpringBootTest
class UserMapperTest {
@Autowired
private UserMapper userMapper;
@Test
void selectAll() {
List<UserInfo> userInfoList = userMapper.selectAll();
userInfoList.forEach(userInfo-> System.out.println(userInfo));
}
}
简单的断⾔说明
断⾔︰如果断⾔失败,则后⾯的代码都不会执⾏。