Juint 测试 简单入门

JUnit 是一个用于编写和运行 Java 程序中单元测试的框架。它是一个开源框架,广泛用于测试Java应用程序中的各个模块和方法。

1. **创建一个 Java 类:**

   创建一个要测试的 Java 类,例如 `Calculator` 类,其中包含一些要测试的方法。

   ```java
   public class Calculator {
       public int add(int a, int b) {
           return a + b;
       }

       public int subtract(int a, int b) {
           return a - b;
       }
   }
   ```

2. **创建测试类:**

   创建一个 JUnit 测试类,以测试 `Calculator` 类中的方法。测试类的命名应该与要测试的类相同,但在后面加上 "Test"。

   ```java
   import org.junit.Test;
   import static org.junit.Assert.*;

   public class CalculatorTest {
       @Test
       public void testAdd() {
           Calculator calculator = new Calculator();
           int result = calculator.add(3, 5);
           assertEquals(8, result);
       }

       @Test
       public void testSubtract() {
           Calculator calculator = new Calculator();
           int result = calculator.subtract(8, 4);
           assertEquals(4, result);
       }
   }
   ```

3. **导入 JUnit 库:**

   确保在项目中包含 JUnit 库。你可以使用 Maven 或 Gradle 等构建工具添加 JUnit 依赖。

   对于 Maven,可以在 `pom.xml` 文件中添加以下依赖:

   ```xml
   <dependencies>
       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.12</version>
           <scope>test</scope>
       </dependency>
   </dependencies>
   ```

4. **运行测试:**

   使用你的集成开发环境(IDE)或构建工具来运行测试。大多数 IDE 都提供了对 JUnit 的支持,并且可以直接在 IDE 中运行测试。

   如果你使用 Maven,可以在命令行中运行以下命令:

   ```bash
   mvn test
   ```

   这将执行所有的测试并输出结果。

这只是一个简单的入门示例,JUnit 还提供了许多其他功能,如参数化测试、断言、测试套件等。

在 JUnit 中,断言是用于验证测试中预期结果的方法。JUnit 提供了一组断言方法,这些方法可以用于比较实际结果和期望结果,如果它们相等,测试通过;否则,测试失败。以下是一些常用的 JUnit 断言方法:

1. **assertEquals(expected, actual):**
   - 用于检查两个值是否相等。如果它们相等,则测试通过;否则,测试失败。

   ```java
   assertEquals(5, result);  // 期望结果为 5
   ```

2. **assertNotEquals(expected, actual):**
   - 用于检查两个值是否不相等。如果它们不相等,则测试通过;否则,测试失败。

   ```java
   assertNotEquals(10, result);  // 期望结果不是 10
   ```

3. **assertTrue(condition):**
   - 用于检查给定条件是否为真。如果条件为真,则测试通过;否则,测试失败。

   ```java
   assertTrue(result > 0);  // 期望结果大于 0
   ```

4. **assertFalse(condition):**
   - 用于检查给定条件是否为假。如果条件为假,则测试通过;否则,测试失败。

   ```java
   assertFalse(result < 0);  // 期望结果不小于 0
   ```

5. **assertNull(object):**
   - 用于检查给定对象是否为 null。如果对象为 null,则测试通过;否则,测试失败。

   ```java
   assertNull(nullObject);  // 期望对象为 null
   ```

6. **assertNotNull(object):**
   - 用于检查给定对象是否不为 null。如果对象不为 null,则测试通过;否则,测试失败。

   ```java
   assertNotNull(nonNullObject);  // 期望对象不为 null
   ```

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

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

相关文章

在C++中,如果你想要对其他类的对象数据进行增删改查(CRUD:Create, Read, Update, Delete),有几种常见的方式可以实现。

文章目录 1. 使用公共成员变量&#xff08;不推荐&#xff09;2. 使用访问器和修改器&#xff08;Getter 和 Setter&#xff09;3. 使用友元函数或友元类4. 使用成员函数5. 通过构造函数和析构函数 在C中&#xff0c;如果你想要对其他类的对象数据进行增删改查&#xff08;CRUD…

huggingface实战bert-base-chinese模型(训练+预测)

文章目录 前言一、bert模型词汇映射说明二、bert模型输入解读1、input_ids说明2、attention_mask说明3、token_type_ids说明4、模型输入与vocab映射内容二、huggingface模型数据加载1、数据格式查看2、数据dataset处理3、tokenizer处理dataset数据三、huggingface训练bert分类模…

《JVM由浅入深学习【五】 2024-01-08》JVM由简入深学习提升分享

目录 JVM何时会发生堆内存溢出&#xff1f;1. 堆内存溢出的定义2. 内存泄漏的原因3. 堆内存溢出的常见场景4. JVM参数调优5. 实际案例分析 JVM如何判断对象可以回收1.可达性分析的基本思路2.实际案例3.可以被回收的对象4.拓展&#xff0c; 谈谈 Java 中不同的引用类型? 结语感…

SCI一区级 | Matlab实现RIME-CNN-LSTM-Mutilhead-Attention多变量多步时序预测

SCI一区级 | Matlab实现RIME-CNN-LSTM-Mutilhead-Attention多变量多步时序预测 目录 SCI一区级 | Matlab实现RIME-CNN-LSTM-Mutilhead-Attention多变量多步时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现RIME-CNN-LSTM-Mutilhead-Attention霜冰算法…

代码随想录算法训练营第三十天|总结、332.重新安排行程、51.N皇后、37.解数独

代码随想录 (programmercarl.com) 总结 332.重新安排行程 欧拉通路和欧拉回路&#xff1a; 欧拉通路&#xff1a;对于图G来说&#xff0c;如果存在一条通路包含G的所有边&#xff0c;则该通路称为欧拉通路&#xff0c;也称欧拉路径。欧拉回路&#xff1a;如果欧拉路径是一条…

比较全面的vcruntime140_1.dll丢失的解决方法,4招搞定缺失的vcruntime140_1.dll

在平时使用电脑的过程中&#xff0c;许多人可能会碰到一个名为vcruntime140_1.dll的文件出现执行错误的问题&#xff0c;往往大家对此束手无策。针对这个问题&#xff0c;本文将向你解释vcruntime140_1.dll是什么&#xff0c;为何会发生这种无法执行代码的错误&#xff0c;以及…

互联网加竞赛 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度&#xff0c;召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

MySQL 中的状态变量

文章目录 前言1. 连接相关1.1 连接线程1.2 连接异常1.3 最大连接数 2. Com 相关3. 临时表相关4. Table Cache 相关5. 缓冲池相关6. Redo log 相关7. 行锁相关8. 排序相关9. 查询相关10. 流量相关11. Binlog 相关 前言 本篇文章介绍一些 MySQL 中常用的监控指标&#xff0c;常见…

无人地磅系统|内蒙古中兴首创无人地磅和远程高效管理的突破

走进标杆企业&#xff0c;感受名企力量&#xff0c;探寻学习优秀企业领先之道。 本期要跟砼行们推介的标杆企业是内蒙古赤峰市砼行业的龙头企业&#xff1a;赤峰中兴首创混凝土搅拌有限责任公司&#xff08;以下简称为中兴首创&#xff09;。 中兴首创成立于2011年初&#xff…

uView time 时间格式

格式化时间 #timeFormat | date(timestamp, format "yyyy-mm-dd") 注意&#xff1a;1.7.9之前的版本只能传入秒或毫秒时间戳&#xff0c;date和timeFormat为同功能不同名函数&#xff0c;无论用哪个方法名&#xff0c;都是一样的。 该函数必须传入第一个参数&…

猫头虎分享已解决Bug || Go Error: cannot use str (type string) as type int in assignment

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通Golang》…

AI教我学编程之C#关键字

AI教我学编程系列学习第三课 — C#关键字 前言重点先知关键字分类保留字上下文关键字 对话AI首遇波澜调整指令第一次第二次第三次直到我提出如下指令 人工智能&#xff1f;阶段总结 知识拓展1、Ecma和ISO是什么&#xff1f;2、System&#xff0c;dllhost.exe&#xff0c;taskmg…

springboot(ssm生产管理ERP系统 wms出入库管理系统Java系统

springboot(ssm生产管理ERP系统 wms出入库管理系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或8.0&#xff09;…

7个Pandas绘图函数助力数据可视化

大家好&#xff0c;在使用Pandas分析数据时&#xff0c;会使用Pandas函数来过滤和转换列&#xff0c;连接多个数据帧中的数据等操作。但是&#xff0c;生成图表将数据在数据帧中可视化&#xff0c;通常比仅仅查看数字更有帮助。 Pandas具有几个绘图函数&#xff0c;可以使用它…

分布式锁相关问题(三)

Redis实战精讲-13小时彻底学会Redis 一、什么是分布式锁&#xff1f; 要介绍分布式锁&#xff0c;首先要提到与分布式锁相对应的是线程锁、进程锁。 l 线程锁&#xff1a;主要用来给方法、代码块加锁。当某个方法或代码使用锁&#xff0c;在同一时刻仅有一个线程执行该方法或该…

传统图像处理学习笔记更新中

文章目录 传统图像处理颜色空间高斯滤波腐蚀和膨胀开运算和闭运算如何求一张图片的均值?线性插值双线性插值仿射变换透视变换常见的边缘检测算子Sobel 算法Canny 算法Hough 变换原理(直线和圆检测)找轮廓(findCountours)单应性(homography)原理

软件测试|Linux基础教程:ln命令与软链接和硬链接

简介 在Linux系统中&#xff0c;ln命令是一个非常有用的工具&#xff0c;用于创建链接&#xff08;link&#xff09;&#xff0c;将一个文件或目录链接到另一个位置。链接允许一个文件或目录可以同时存在于多个位置&#xff0c;而不会占用额外的磁盘空间。ln命令支持创建硬链接…

TS内置的Readonly<T>

不要使用内置的Readonly<T>&#xff0c;自己实现一个。 泛型 Readonly<T> 会接收一个 泛型参数&#xff0c;并返回一个完全一样的类型&#xff0c;只是所有属性都会是只读 (readonly) 的。 也就是不可以再对该对象的属性赋值。 例如&#xff1a; interface Tod…

202312 青少年软件编程等级考试Scratch一级真题(电子学会)

2023年12月 青少年软件编程等级考试Scratch一级真题&#xff08;电子学会&#xff09; 试卷总分数&#xff1a;100分 试卷及格分&#xff1a;60 分 考试时长&#xff1a;60 分钟 第 1 题 单选题 观察下列每个圆形中的四个数&#xff0c;找出规律&#xff0c;在括…

用通俗易懂的方式讲解:2024 检索增强生成技术(RAG)研究进展

本篇内容1w字左右&#xff0c;稍微有点长&#xff0c;相对不容易理解&#xff0c;喜欢可以收藏、关注、点赞。 一、前言 在过去的一两年里&#xff0c;人工智能领域目睹了检索增强生成技术&#xff08;RAG&#xff09;的迅猛发展&#xff0c;这种技术结合了强大的语言模型与信…