SpringBoot单元测试

目录

1.什么是单元测试?

2.单元测试有哪些好处?

[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));
 }
 }

简单的断⾔说明

断⾔︰如果断⾔失败,则后⾯的代码都不会执⾏。

相关推荐
seabirdssss1 分钟前
JDK 11 环境正确,端口未被占用,但是运行 Tomcat 11 仍然闪退
java·开发语言·tomcat
努力学算法的蒟蒻2 分钟前
day03(11.1)——leetcode面试经典150
java·算法·leetcode
Mr YiRan13 分钟前
SYN关键字辨析,各种锁优缺点分析和面试题讲解
java·开发语言
Zhang青山41 分钟前
028.爬虫专用浏览器-抓取#shadowRoot(closed)下
java·后端
bug攻城狮1 小时前
SpringBoot响应封装:Graceful Response vs 自定义通用响应类选型指南
java·spring boot·后端·http
m0_736927041 小时前
Spring Boot项目中如何实现接口幂等
java·开发语言·spring boot·后端·spring·面试·职场和发展
再睡一夏就好1 小时前
【C++闯关笔记】使用红黑树简单模拟实现map与set
java·c语言·数据结构·c++·笔记·语法·1024程序员节
oak隔壁找我2 小时前
ShardingJdbc配置说明
java·后端
javachen__2 小时前
Spring Boot将错误日志发送到企微微信或钉钉群
spring boot·后端·钉钉
升鲜宝供应链及收银系统源代码服务2 小时前
升鲜宝供应链管理系统-生鲜配送系统_分拣端界面重构设计(一)
spring boot·重构·开源·收银系统·生鲜门店·升鲜宝多门店收银系统