当前位置: 首页 > news >正文

SpringBoot单元测试

目录

1.什么是单元测试?

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

3.Spring Boot单元测试使⽤

单元测试的实现步骤

1. ⽣成单元测试类

2. 添加单元测试代码

2.1 .添加Spring Boot框架测试注解:@SpringBootTest

2.2 添加单元测试业务逻辑

简单的断⾔说明


1.什么是单元测试?

单元测试(unit testing),是指对软件中的最⼩可测试单元进⾏检查验证的过程就叫单元测试。
单元测试是开发者编写的⼀⼩段代码,⽤于检验被测代码的⼀个很⼩的、很明确的(代码)功能是否正确。执⾏单元测试就是为了证明某段代码的执⾏结果是否符合我们的预期。如果测试结果符合我们的预期,称之为测试通过,否则就是测试未通过(或者叫测试失败)。

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

  • 1、可以⾮常简单、直观、快速的测试某⼀个功能是否正确。
  • 2、使⽤单元测试可以帮我们在打包的时候,发现⼀些问题,因为在打包之前,所以的单元测试必须通过,否则不能打包成功。
  • 3、使⽤单元测试,在测试功能的时候,可以不污染连接的数据库,也就是可以不对数据库进⾏任何改变的情况下,测试功能。

3.Spring Boot单元测试使⽤

Spring Boot项⽬创建时会默认单元测试框架 spring-boot-test,⽽这个单元测试框架主要是依靠另个著名的测试框架JUnit 实现的,打开pom.xml就可以看到,以下信息是Spring Boot项⽬创建是⾃动添加的:
<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. ⽣成单元测试类

 

 

 最终生成的代码:

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 添加单元测试业务逻辑

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.*;
@SpringBootTestclass UserMapperTest {@Autowiredprivate UserMapper userMapper;@Testvoid selectAll() {List<UserInfo> userInfoList = userMapper.selectAll();userInfoList.forEach(userInfo-> System.out.println(userInfo));}}

简单的断⾔说明

 

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

http://www.lryc.cn/news/104089.html

相关文章:

  • 刷题 41-45
  • Centos时间同步
  • Linux 查看磁盘空间
  • 我的会议(我的审批,会议签字附源码)
  • Python 装饰器该如何理解?
  • IDEA 模块不加载依旧是灰色 没有变成小蓝色的方块
  • 可以写进简历的kafka优化-----吞吐量提升一倍的方法
  • JavaScript中,for in 和for of的区别
  • 计算机毕设 深度学习手势识别 - yolo python opencv cnn 机器视觉
  • vue3 axios接口封装
  • 誉天程序员-2301-3-day08
  • Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式
  • 前端(十一)——Vue vs. React:两大前端框架的深度对比与分析
  • 三分钟白话RocketMQ系列—— 核心概念
  • 递归竖栏菜单简单思路
  • 组件化、跨平台…未来前端框架将如何演进?
  • vue 修改端口号
  • hive的metastore问题汇总
  • 【phaser微信抖音小游戏开发003】游戏状态state场景规划
  • 字符串性能优化
  • 从零开始理解Linux中断架构(23)中断运行临界区和占先调度
  • (3)Gymnasium--CartPole的测试基于DQN
  • 利用sklearn 实现线性回归、非线性回归
  • Java课题笔记~ MyBatis入门
  • Activity的自启动模式
  • 53数组的扩展
  • Rust调试【三】
  • uniApp 对接安卓平板刷卡器, 读取串口数据
  • Go new 与 make
  • centos系统离线安装k8s v1.23.9最后一个版本并部署服务,docker支持的最后一个版本