Java基础(六)

前言:本篇博客学习Junit单元测试框架的使用以及常见的注解。

目录

单元测试

Junit单元测试框架

常见注解


单元测试

什么是单元测试?

针对最小的功能单元(方法),编写测试代码对其进行正确性测试。

Junit单元测试框架

测试方法必须添加注解

添加@Test注解,引入JUnit4框架

package learn15;public class StringUtil {public static void printNumber(String name) {if (name == null) {System.out.println(0);return;}System.out.println("名字的长度是:" + name.length());}public static int getMaxIndex(String data) {if (data == null) {return -1;}return data.length();}
}
package learn15;import org.junit.Assert;
import org.junit.Test;public class StringUtilTest {@Testpublic void testPrintNumber() {StringUtil.printNumber("admin");StringUtil.printNumber(null);}@Testpublic void testGetMaxIndex() {int index1 = StringUtil.getMaxIndex(null);System.out.println(index1);int index2 = StringUtil.getMaxIndex("admin");System.out.println(index2);Assert.assertEquals("方法内部有Bug!",4,index2);}
}

运行所有的Test,在项目工程目录下右键,选择Run 'All Tests'

常见注解

@Test:测试类中的方法必须用它修饰才能成为测试方法,才能启动执行。

@Before:用来修饰一个实例方法,该方法会在每一个测试方法执行之前执行一次。

@BeforeClass:用来修饰一个静态方法,该方法会在所有测试方法之前只执行一次。

@After:用来修饰一个实例方法,该方法会在每一个测试方法执行之后执行一次。

@AfterClass:用来修饰一个静态方法,该方法会在所有测试方法之后只执行一次。

package learn15;import org.junit.*;import java.net.Socket;public class StringUtilTest {private Socket socket;@Beforepublic void test1() {System.out.println("----->test1 Before执行了------");socket = new Socket();}@BeforeClasspublic static void test11() {System.out.println("----->test11 BeforeClass执行了------");}@Afterpublic void test2() {System.out.println("----->test2 After执行了------");}@AfterClasspublic static void test22() {System.out.println("----->test22 AfterClass执行了------");}@Testpublic void testPrintNumber() {StringUtil.printNumber("admin");StringUtil.printNumber(null);}@Testpublic void testGetMaxIndex() {int index1 = StringUtil.getMaxIndex(null);System.out.println(index1);int index2 = StringUtil.getMaxIndex("admin");System.out.println(index2);Assert.assertEquals("方法内部有Bug!", 4, index2);}
}

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

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

相关文章

栈和队列1——栈的实现及其oj(括号匹配问题)

一,栈的概念 栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈&#xf…

【lesson7】git的介绍及使用

文章目录 什么是gitgit的历史git使用在gitee上创建仓库git clone HTTPS地址git add .git add 文件名git commit “日志”git pushgit loggit rm 文件名git statusgit pull 什么是git git是版本控制器,那么什么是版本控制器呢? 下面讲个故事为大家讲解一…

SpringBoot开发实战(微课视频版)

ISBN: 978-7-302-52819-7 编著:吴胜 页数:311页 阅读时间:2023-06-24 推荐指数:★★★★☆ 本文介绍SpringBoot 2.0.5 、JDK 1.8,虽然现在已经不维护了,但是大体的流程还是对口的, 而且书里面讲…

【算法】滑动窗口破解长度最小子数组

Problem: 209. 长度最小的子数组 文章目录 题意分析算法原理讲解暴力枚举O(N^2)利用单调性,滑动窗口求解 复杂度Code 题意分析 首先来分析一下本题的题目意思 题目中会给到一个数组,我们的目的是找出在这个数组中 长度最小的【连续】子数组,而…

JVM 篇

目录 一、知识点汇总 二、知识点详解 2.1 JVM 的主要组成部分及其作用 2.2 JVM内存模型 2.3 堆与栈的区别 2.4 JVM 加载 class 文件的原理机制 2.5 类的生命周期 2.6 Java 对象结构 2.7 Java 对象创建过程 2.8 指针碰撞 2.9 空闲列表 2.10 TLABCAS 2.11 说…

蓝牙电话之HFP—电话音频

1 媒体音频: 播放蓝牙音乐的数据,这种音频对质量要求高,数据发送有重传机制,从而以l2cap的数据形式走ACL链路。编码方式有:SBC、AAC、APTX、APTX_HD、LDAC这五种编码方式,最基础的编码方式是SBC&#xff0…

【Vue入门】语法 —— 事件处理器、自定义组件、组件通信

目录 一、事件处理器 1.1 样式绑定 1.2 事件修饰符 1.3 按键修饰符 1.4 常用控制符 1.4.1 常用字符综合案例 1.4.2 修饰符 二、自定义组件 2.1 组件介绍及定义 2.2 组件通信 2.2.1 组件传参(父 -> 子) 2.2.1 组件传参(子 ->…

Goland设置头注释

package ${GO_PACKAGE_NAME} * Author: 坐公交也用券 * HomePage: https://liumou.site * File: ${NAME}.go * Date: ${DATE} ${TIME} * Des: 文件作用

什么是AES加密?详解AES加密算法原理流程

在密码学中,加密算法分为双向加密和单向加密。单向加密包括MD5、SHA等摘要算法,它们是不可逆的。双向加密包括对称加密和非对称加密,对称加密包括AES加密、DES加密等。双向加密是可逆的,存在密文的密钥。AES算法是DES算法的替代者…

Linux 操作技巧

目录 一、shell-命令解释器 二、Linux中的特殊符号 三、命令历史--history 一、shell-命令解释器 shell——壳,命令解释器,负责解析用户输入的命令 ——内置命令(shell内置) ——外置命令,在文件系统的某个目录下&…

数据库中的DDL与DML

标签:数据库 记录下DDL和DML的相关概念。 数据定义语言 定义数据库模式 数据定义语言DDL(Data-Definition Language)可定义数据库模式。数据库模式在之前的文章中已经提到过了。简单来说,建表用的SQL语句就是DDL。如下代码 CREATE TABLE department(de…

3、靶场——Pinkys-Place v3(3)

文章目录 一、获取flag41.1 关于SUID提权1.2 通过端口转发获取setuid文件1.3 运行pinksecd文件1.4 利用nm对文件进行分析1.5 构建payload1.6 Fire 二、获取flag52.1 生成ssh公钥2.2 免密登录ssh2.3 以pinksecmanagement的身份进行信息收集2.4 测试程序/usr/local/bin/PSMCCLI2.…

CoreData 在新建或更新托管对象中途发生错误时如何恢复如初?

问题现象 在 CoreData 支持的 App 中,当我们新建或更新托管对象到一半突然出现错误时,应该禁止任何已发生的改变被写入内存或数据库中。不过,有时仍会出现始料未及的“意外”: 从上面的演示可以看到:即使在 Item 对象新建和更新途中出现错误后不执行后续的保存操作,但界…

Windows安装Mysql--免安装版

在Windows系统上安装免安装版MySql的步骤 官方下载地址:https://dev.mysql.com/downloads/mysql/ 将下载好的文件“mysql-5.7.18-winx64”解压缩到C盘的 目录下: 配置环境变量: (略) 正式安装,添加my.i…

基于Spring Boot的网上租贸系统

目录 前言 一、技术栈 二、系统功能介绍 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 本课题是根据用户的需要以及网络的优势建立的一个基于Spring Boot的网上租贸系统,来满足用户网络商品租赁的需求。 本网上租贸系统应用Java技术&#xff0…

LeetCode【174. 地下城游戏】

一片丹心图报国,两行清泪为忠家。——于谦 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康…

zabbix添加监控项及邮件报警

一、zabbix添加监控项 添加主机群组,添加主机,添加监控项 键值参考官方文档:1 Zabbix客户端 添加监控MySQL3306端口的监控项 2.邮件报警 1.软件安装 [rootxingdian ~]# yum install mailx -y 2.邮箱配置 [rootxingdian ~]# vim /etc/mail.…

【算法专题突破】二分查找 - 704. 二分查找(16)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 1. 题目解析 题目链接:704. 二分查找 - 力扣(LeetCode) 题目非常简单,就是查找一个 target。 2. 算法原理 根据最基本的二分查找算法: 在一个…

平滑滤波第二节,中值滤波法(数字图像处理大题复习 P5)

文章目录 中值滤波1. 圈出模板像素2. 列出像素找到中值3. 填入结果 如果: 不要滤波后就替换 中值滤波 1. 圈出模板像素 我们先观察这个模板,这里圈出来了5个像素,那我们也在图像中对圈出5个像素(和均值滤波一样,第一个点的选取&a…