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

简单的断⾔说明

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

相关推荐
爱笑的眼睛1113 分钟前
超越`cross_val_score`:深入剖析Scikit-learn交叉验证API的设计哲学与高阶实践
java·人工智能·python·ai
L0CK19 分钟前
三种依赖注入详解
java
記億揺晃着的那天32 分钟前
Amazon SP-API,授权封装、SDK 分层与 AAD 加密一致性设计
spring boot·架构设计·amazon sp-api·sdk 设计
shoubepatien41 分钟前
JAVA -- 07
java·后端·intellij-idea
Gu_yyqx43 分钟前
Maven进阶
java·maven
小肖爱笑不爱笑1 小时前
JavaScript
java·javascript·json·web
专注于大数据技术栈1 小时前
java学习--String和StringBuffer互转
java·学习
waper971 小时前
nohup java -jar启动jar包错报错 地址已在使用
java·开发语言·jar
無量1 小时前
ConcurrentHashMap实现原理
java·后端
Selegant1 小时前
Kubernetes + Helm + ArgoCD:打造 GitOps 驱动的 Java 应用交付流水线
java·kubernetes·argocd