java | junit | 基本+技巧

1.参考链接
1.1 单测概念
https://medium.com/@lathasreeseeni/junit-2d9857773e8
1.2 高级技巧
https://symflower.com/en/company/blog/2023/how-to-write-junit-test-cases-advanced-techniques/

  • assertThrows:
    有时候,我们的方法,需要抛出错误。例如,deleTask(id) 中,id不存在的时候,需要抛错。那么在单测中,就可以用assertThrows。
  • @ParameterizedTest:
    场景:多个不同输入对应的结果
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import static org.junit.jupiter.api.Assertions.assertEquals;public class CalculatorTest {@ParameterizedTest@CsvSource({"1, 2, 3","0, 0, 0","-1, 1, 0","100, -100, 0"})void testAdd(int a, int b, int expected) {Calculator calculator = new Calculator();int result = calculator.add(a, b);assertEquals(expected, result);}
}
  • assumeTrue(condition)
    condition正确再执行下面的语句

-assumeFalse
condition错误再执行下面的语句,也就是说,condition为true则不会执行下面的语句。

import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assume.assumeTrue;public class MyTest {@Testpublic void testAdd() {assumeTrue(2 + 2 == 4);// ↑2+2=4这个假设是正确的,执行↓ assertEquals(4, Calculator.add(2, 2));}}
  • @Parameterized.Parameters
    构造多个参数,可以是对象的参数
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;import java.util.Arrays;
import java.util.Collection;import static org.junit.Assert.assertEquals;@RunWith(Parameterized.class)
public class CalculatorTest {private int a, b, expected;public CalculatorTest(int a, int b, int expected) {this.a = a;this.b = b;this.expected = expected;}@Parameterized.Parameterspublic static Collection<Object[]> data() {return Arrays.asList(new Object[][]{{1, 1, 2},{2, 3, 5},{5, 5, 10},{10, 0, 10},{-5, 5, 0}});}@Testpublic void testAdd() {Calculator calculator = new Calculator();int result = calculator.add(a, b);assertEquals(expected, result);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES系列之相似度模型

概述 ES作为一款搜索引擎&#xff0c;搜索结果如何排序&#xff0c;即什么条目或内容更靠前&#xff0c;是一个很核心的问题。排序通常是通过计算语料库中的文档和用户查询之间的相关性或相似度评分来进行。 相似性&#xff08;得分/排名模型&#xff09;定义匹配文档如何进行…

C#基于SSE传递消息给Vue前端实现即时单向通讯

一、简述 通常前端调用后端的API&#xff0c;调用到了&#xff0c;等待执行完&#xff0c;拿到返回的数据&#xff0c;进行渲染&#xff0c;流程就完事了。如果想要即时怎么办&#xff1f;如果你想问什么场景非要即时通讯&#xff0c;那可就很多了&#xff0c;比如在线聊天、实…

libwebsockets 简介

文章目录 1. 前言2. libwebsockets 的 编译 和 使用2.1 编译2.2 使用2.2.1 构建运行上下文2.2.2 事件处理循环 3. websocket 协议 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. libwebsockets…

EASERVER管理密码忘记的处理方式

一个多年的老客户&#xff0c;EASERVER的管理员密码忘记了&#xff0c;查了一些资料&#xff0c;把它重置了&#xff0c;做个记录 This is a really quick tip on how to reset password for the administrator id “jagadmin” used in EA Server. We use this id for everyt…

Java 笔记 01:Java 概述,MarkDown 常用语法整理

一、前言 记录时间 [2024-04-18] 昨天整理完 Docker 基础后略微思索了一下&#xff0c;还是决定把 Java 捡起来&#xff0c;系统地学习一遍&#xff0c;参考的学习课程是狂神说 Java 零基础&#xff0c;真诚感激此系列视频对笔者的帮助。 零基础可以学 Java 吗&#xff1f;只要…

JVS低代码平台表单引擎:字符串拼接与逻辑函数的完美结合

字符串拼接使用逻辑函数配置 示例场景&#xff1a;通过按钮触发逻辑使用函数将两个日期字段组合为范围时间类型。 选择开始日期和结束日期后&#xff0c;点击【合并】按钮自动处理回显至起止日期字段。在【合并】按钮上设置逻辑。 注意&#xff1a;这里【起止日期】组件是数组…

【web开发02】后端开发Maven

后端开发Maven 1 Maven是什么&#xff1f;1.1 Maven基础概念1.1.2 仓库1.1.3 坐标 2 配置maven环境3 创建maven项目4 导入maven项目4 依赖管理4.1 依赖配置4.2 依赖传递4.2.1 排除依赖 4.3 依赖范围4.4 生命周期4.4.1 运行生命周期 1 Maven是什么&#xff1f; Maven本质是项目…

无梯度计算模式

无梯度计算模式是指在进行优化、求解或模型训练时&#xff0c;不依赖于目标函数或其相关组件&#xff08;如损失函数、约束函数等&#xff09;的梯度信息来指导搜索或更新过程的方法。这种模式适用于以下几种情况&#xff1a; 梯度不可用或难以计算&#xff1a; 目标函数可能包…

android和java 线程Tread

1。线程的生命周期。 可以分为创建,就绪,运行,阻塞,死亡 5个状态。 1.1 创建 new :当程序new了一个线程后,线程就处于新建状态,这时候他和其他 java对象一样,被java虚拟机分配了内存,但没有线程的特性。 …

idea 切换分支后 Project目录树小消失

idea 切换分支后 Project目录树小消失 生气了 生气了 若代码已经保存提交&#xff0c;直接删除本地项目&#xff0c;重新拉取。

二次元AI绘画生成器免费:教你生成精美图片

二次元AI绘画生成器&#xff0c;无疑是现代技术与艺术完美结合的典范。这些工具不仅将复杂的绘画过程简化&#xff0c;更让每一个艺术爱好者的创意得以充分展现。这些生成器能够精准捕捉大家的创意精髓&#xff0c;将其转化为细腻、独特的二次元画作。无论是角色设计、场景描绘…

SpringMVC(五)【拦截器】

前言 今天来把 SpringMVC 最后一部分学完&#xff0c;虽然课时很短&#xff0c;但是学起来还是很慢的&#xff0c;不过确收获很大。不得不感慨学大数据确实有必要把 SSM、SpringBoot 等各种 JavaEE 技术好好学一学&#xff0c;收获很大&#xff0c;尽管我们到现在 Java 代码写了…

Redis几种常见的应用方式

1.登录认证 redis最常见的应用就是&#xff0c;登录认证把。再首次登录返回给前端token&#xff0c;把用户名和登录状态缓存到redis一段时间&#xff0c;每次其他请求进来过滤器那这token解析出来的用户名或其他关键的key值&#xff0c;再redis里面查询缓存&#xff0c;有则直…

【算法】二分查找

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、二分查找二、查找元素的第一个和最后一个位置三、x的平方根四、搜索插入位置五、山脉数组的峰顶索引…

【Leetcode每日一题】 分治 - 排序数组(难度⭐⭐)(60)

1. 题目解析 题目链接&#xff1a;912. 排序数组 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 算法思路&#xff1a; 快速排序作为一种经典的排序算法&#xff0c;其核心思想在于通过“分而治之”的策略&#xff…

eCongnition 根据栅格类别图分类分割结果

目录 1、导入标签文件 2、根据栅格类别计算对象类别 3、导出栅格计算的类别 1、导入标签文件 导入栅格类别文件Label.tif 参考&#xff1a;eCongnition 对图像进行多尺度分割-CSDN博客 2、根据栅格类别计算对象类别 对类别栅格创建 mode[Maximum] 特征&#xff0c;该特征…

SQL Serve---嵌套查询

定义 嵌套查询&#xff1a;主要用于复杂的查询中。在SQL语言中&#xff0c;一个Select From Where语句称为一个查询块&#xff0c;将一个查询块嵌套在另一个查询的Where子句或Having短语中的查询称为嵌套查询。 子查询的类型 使用别名的子查询 使用IN和NOT IN的子查询 使用比较…

Java基础之循环控制语句、函数、数组

Java基础 1.循环控制语句: break、continue public static void main(String[] args) {/*TODO 循环控制语句 - break需要和 for 以及 while 循环搭配使用 当在循环中执行了 break语句 那么就可以退出当前循环*/int sum 0;for (int i 1; i < 1000; i) {sum i;if (i >…

基于SSM的列车订票管理系统(含源码+sql+视频导入教程+文档+PPT)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的列车订票管理系统3拥有两种角色&#xff1b;管理员、用户 管理员&#xff1a;用户管理、车票管理、购票指南管理、系统管理等 用户&#xff1a;发布帖子、登录注册、购票等 1.…

数据结构速成--串

由于是速成专题&#xff0c;因此内容不会十分全面&#xff0c;只会涵盖考试重点&#xff0c;各学校课程要求不同 &#xff0c;大家可以按照考纲复习&#xff0c;不全面的内容&#xff0c;可以看一下小编主页数据结构初阶的内容&#xff0c;找到对应专题详细学习一下。 目录 …