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

单元测试整理

          在国外软件开发中,单元测试必不可少,但是国内并不太重视这一块,一个好的单元测试可以提前发现很多问题,也减去和测试battle的时间

SpringBoot单元测试

SpringBoot自动生成的测试在test\java下,而且注意Test类所在包和Main类所在包名称是相同的,@SpringBootTest也确实是根据这个启动整个容器的(待研究源码)。如果不在同包名下,需要对@SpringBootTest加参指定Main所在的包

常用注解

@DisplayName——测试方法显示名称
@BeforeAll——所有测试方法运行之前先运行该方法(只运行一次)
@BeforeEach——每个测试方法运行之前都运行一次该方法(只要有测试方法运行,这个方法都会在他们之前运行,即使没有显式调用 )

JUnit5

SpringBoot 2.2.0版本开始使用Junit5作为单元测试默认库
JUnit5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

JUnit Platform

JUnit Platform是JVM上启动测试框架的基础,不仅支持JUnit自制的测试引擎,其他测试引擎也都可以接入

JUnit Jupiter

JUnit Jupiter提供了JUnit5新的编程模型,是JUnit5新特性的核心。内部包含了一个测试引擎,用在Junit Platform上运行

JUnit Vintage

JUnit Vintage提供了兼容JUnit4.x、JUnit3.x的测试引擎,便于用户对JUnit进行升级

断言

Assertions

事先写好应该得到的结果,如果满足期望值返回true,否则返回false

// 简单断言
Assertions.assertEquals(expect, actual, msg)
Assertions.assertNotEquals(expect, actual, msg)
Assertions.assertSame(expect, actual, msg) —— 同一对象
Assertions.assertNotSame(expect, actual, msg)
Assertions.assertNull(actual, msg)
Assertions.assertNotNull(actual, msg)
// 组合断言
// 每一条断言都成功才成功
Assertions.assertAll(jobName, exec)
// 前置条件
Assertions.assertTrue(assumption, msg) —— 是否为true
Assertions.assertFalse(assumption, msg)	

嵌套测试

@Nested
可以将各个单元测试整合起来,形成一个层次分明的完整测试

参数测试

@ParameterizedTest——每个参数测试都得先加这个注解
@ValueSource
@MethodSource
@NullSource
@EnumSource

http://www.mrgr.cn/news/91883.html

相关文章:

  • QT基础八、与时间相关的UI控件
  • DeepSeek掘金——SpringBoot 调用 DeepSeek API 快速实现应用开发
  • PrimeTime:工具简介
  • 华为昇腾910b服务器部署DeepSeek翻车现场
  • nodejs npm install、npm run dev运行的坎坷之路
  • 【AI学习】AI大模型新时代,怎样更好地熟练地使用指令工具?
  • python的if判断和循环语句(while循环和for循环)
  • 【练习】【回溯:组合:不同集合】力扣 17. 电话号码的字母组合
  • 【Java学习】多态
  • GCC编译器(含预处理/编译/汇编/链接四阶段详解)
  • 算法题(74):Pow(x,n)
  • 一文说清楚编码、摘要、加密、公钥、私钥、解密、签名、验签
  • 对免认证服务提供apikey验证
  • 大数据学习之任务流调度系统Azkaban、Superset可视化系统
  • Powershell Install deepseek
  • 【Kubernets】Kubernets资源类型Deployment详细介绍
  • DeepSeek vs ChatGPT:AI 领域的华山论剑,谁主沉浮?
  • 人工智能驱动的自动驾驶:技术解析与发展趋势
  • 【笔记ing】C语言补充、组成原理数据表示与汇编实战、操作系统文件实战(高级阶段)
  • 【精调】LLaMA-Factory 快速开始4 自定义个一个sharegpt数据集并训练