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

简单的断⾔说明

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

相关推荐
重生之小比特8 小时前
【Java SE】IDEA 调试 Debug 案例完整分析
java·ide·intellij-idea
晴天168 小时前
JavaScript 与 Java 垃圾回收机制对比
java·开发语言·javascript
xiaohua10098 小时前
JVM内存优化-jemalloc
java·jvm
吃饱了得干活8 小时前
Redisson 进阶实战:看门狗机制与分布式锁完全指南
java·redis·后端
淘源码d9 小时前
基于Java开发的上门家政系统源码,采用SpringBoot+MySQL+UniApp+Vue3技术栈,构建三端一体化平台
java·源码·上门家政·家政系统·同城家政·源码部署
Wang's Blog9 小时前
Java框架快速入门: Spring Security+OAuth2之多因子认证逻辑与实体类改造
java·开发语言·spring
ashiho9 小时前
【Spring】RequestParam/PathVariable/RequestBody详解
java·后端·spring·servlet·springmvc
Escalating_xu9 小时前
【mmap 进程间通信】从共享内存到跨进程唤醒:用互斥锁、条件变量控制多个进程
java·linux·开发语言·jvm
泡海椒9 小时前
脚本包导入实战:JQuick-Java自定义包引入与别名配置教程
java·开发语言·python
隐退山林9 小时前
JavaEE进阶:SpringBoot统一功能处理
java·spring boot·后端