java单元测试(调试)

news2024/12/23 5:09:56

文章目录

  • 测试分类
  • JUnit单元测试介绍
  • 引入本地JUnit.jar
  • 编写和运行@Test单元测试方法
  • 设置执行JUnit用例时支持控制台输入
        • 10.6.6 定义test测试方法模板

测试分类

**黑盒测试:**不需要写代码,给输入值,看程序是否能够输出期望的值。

**白盒测试:**需要写代码的。关注程序具体的执行流程。
在这里插入图片描述
在这里插入图片描述

JUnit单元测试介绍

JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个测试框架(regression testing framework),供Java开发人员编写单元测试之用。

JUnit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。

要使用JUnit,必须在项目的编译路径中引入JUnit的库,即相关的.class文件组成的jar包。jar就是一个压缩包,压缩包都是开发好的第三方(Oracle公司第一方,我们自己第二方,其他都是第三方)工具类,都是以class文件形式存在的。

引入本地JUnit.jar

第1步:在项目中File-Project Structure中操作:添加Libraries库
在这里插入图片描述
添加:
在这里插入图片描述
其中,junit-libs包内容如下:
在这里插入图片描述
第2步:选择要在哪些module中应用JUnit库
在这里插入图片描述
第3步:检查是否应用成功
在这里插入图片描述
注意Scope:选择Compile,否则编译时,无法使用JUnit。

第4步:下次如果有新的模块要使用该libs库,这样操作即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

编写和运行@Test单元测试方法

JUnit4版本,要求@Test标记的方法必须满足如下要求:

  • 所在的类必须是public的,非抽象的,包含唯一的无参构造器。
  • @Test标记的方法本身必须是public,非抽象的,非静态的,void无返回值,()无参数的。
import org.junit.Test;

public class TestJUnit {
    @Test
    public void test01(){
        System.out.println("TestJUnit.test01");
    }

    @Test
    public void test02(){
        System.out.println("TestJUnit.test02");
    }

    @Test
    public void test03(){
        System.out.println("TestJUnit.test03");
    }
}

在这里插入图片描述

设置执行JUnit用例时支持控制台输入

1. 设置数据:

默认情况下,在单元测试方法中使用Scanner时,并不能实现控制台数据的输入。需要做如下设置:

idea64.exe.vmoptions配置文件中加入下面一行设置,重启idea后生效。

-Deditable.java.test.console=true

2. 配置文件位置:

在这里插入图片描述
在这里插入图片描述
添加完成之后,重启IDEA即可。

3. 如果上述位置设置不成功,需要继续修改如下位置

修改位置1:IDEA安装目录的bin目录(例如:D:\develop_tools\IDEA\IntelliJ IDEA 2022.1.2\bin)下的idea64.exe.vmoptions文件。

修改位置2:C盘的用户目录C:\Users\用户名\AppData\Roaming\JetBrains\IntelliJIdea2022.1 下的idea64.exe.vmoptions`件。

10.6.6 定义test测试方法模板

选中自定义的模板组,点击”+”(1.Live Template)来定义模板。

在这里插入图片描述

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

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

相关文章

LangChain + ChatGLM2-6B 搭建个人专属知识库

之前教过大家利用 langchain ChatGLM-6B 实现个人专属知识库,非常简单易上手。最近,智谱 AI 研发团队又推出了 ChatGLM 系列的新模型 ChatGLM2-6B,是开源中英双语对话模型 ChatGLM-6B 的第二代版本,性能更强悍。 树先生之所以现…

GitUI汉化

1.下载汉化文件 下载地址 备用下载地址 https://files.cnblogs.com/files/chenghu/git-gui-zh-master.zip https://files.cnblogs.com/files/chenghu/git-gui-zh-master.zip 2.找到git安装路径 C:\Program Files\Git\mingw64\share\git-gui\lib 3.解压出1下载的文件 复制粘…

配置无线网卡AP模式为wifi热点

1、判断网卡是否支持AP 不管是自带无线网卡、还是外接的usb无线网卡,要先配置为AP热点模式。需要看检查是否支持AP模式。 例如,这里插入 rtl8811c 的双频usb无线网卡,iwconfig查看网卡信息 nvidianvidia-desktop:~$ iwconfig wlan0 un…

数据结构——各种常见算法的实现方法和思路

文章目录 常见的排序算法类型复杂度和稳定性 1.冒泡排序2.直接插入排序3.希尔排序4.简单选择排序方法1:双向遍历选择排序方法2:单向遍历选择排序 5.归并排序方法1:递归方法2:非递归 6.快速排序方法1:随机取keyi方法2&a…

GD32F303 DAM串口接收

1.设置串口 串口配置比较常规,我只应用的空闲中断。 2.DMA设置 我设置的DMA是串口接收到数据后保存到数组里,数组满了以后会自动从头开始,并且会进入一次DMA中断。

Jenkins+Robot 接口自动化测试

目录 前言: 设计目标 项目说明 目录结构 配置 jenkins 1.安装插件 2.配置项目 前言: JenkinsRobot是一种常见的接口自动化测试方案,可以实现自动化的接口测试和持续集成。Jenkins是一个流行的持续集成工具,而Robot Framew…

代码随想录day3 | 203.移除链表元素 707.设计链表 206.反转链表

文章目录 一、移除链表元素的思想两种方法 二、203.移除链表元素三、707.设计链表四、206.反转链表 一、移除链表元素的思想 直接让前一个节点指向后一个节点即可 两种方法 第一种:直接删除 第二种:头删的时候,直接headhead->next 其实…

JAVA数据结构、集合操作及常用API_C++开发转JAVA

文章目录 零、引言一、JAVA数据结构基础1.0 数据类型概述1.1 基本数据类型 零、引言一、JAVA数据结构基础1.0 数据类型概述1.1 基本数据类型1.2 包装类1.3 基本类型和包装类型的区别1.4 包装类型的缓存机制1.5 equals() 和 1.6 自动装箱拆箱1.7 浮点数精度丢失1.8 数值、字符转…

windows下配置pytorch + yolov8+vscode,并自定义数据进行训练、摄像头实时预测

最近由于工程需要,研究学习了一下windows下如何配置pytorch和yolov8,并自己搜集数据进行训练和预测,预测使用usb摄像头进行实时预测。在此记录一下全过程 一、软件安装和配置 1. vscode安装 windows平台开发python,我采用vscod…

Python基础合集 练习26 (turtle库的使用)

turtle是标准库 import turtle as t 窗口最小单位为像素 t.steup(width,height,起始点,起始点) 不是必须的 t.setup(800, 400) 不设置后面的起始点默认在中间 空间坐标体系 绝对坐标 四个象限 t.goto(x,y) 让某个位置的海龟到达某个地方 t.goto(100,100) t.goto(10…

使用flask开启一个简单的应用

Flask是非常流行的 Python Web框架,它能如此流行,原因主要有如下几点: 。有非常齐全的官方文档,上手非常方便。 。有非常好的扩展机制和第三方扩展环境,.工作中常见的软件都会有对应的扩展。自己动手实现扩展也很容易。 。社区活跃度非常高。…

【可解释学习】PyG可解释学习模块torch_geometric.explain

PyG可解释学习模块torch_geometric.explain PhiloshopyExplainerExplanationsExplainer AlgorithmExplanation Metrics参考资料 torch_geometric.explain是PyTorch Geometric库中的一个模块,用于解释和可视化图神经网络(GNN)模型的预测结果。…

RestClient操作文档和DSL查询语法

一、 文档操作 1、新增文档 本案例中,hotel为索引库名,61083为文档idTestvoid testAddDocument() throws IOException {// 1.根据id查询酒店数据Hotel hotel hotelService.getById(61083L);// 2.转换为文档类型HotelDoc hotelDoc new HotelDoc(hotel…

【数据结构】二叉树——链式结构

目录 一、前置声明 二、二叉树的遍历 2.1 前序、中序以及后序遍历 2.2 层序遍历 三、节点个数以及高度 3.1 节点个数 3.2 叶子节点个数 3.3 第k层节点个数 3.4 二叉树的高度/深度 3.5 查找值为x的节点 四、二叉树的创建和销毁 4.1 构建二叉树 4.2 二叉树销毁 4.3 …

2023年7月14日,ArrayList底层

集合框架图: 集合和数组的区别 AarrayList ArrayList底层实现原理 ArrayList的底层实现是基于数组的动态扩容。 初始容量:当创建一个新的ArrayList对象时,它会分配一个初始容量为10的数组。这个初始容量可以根据需求进行调整。 //表示默认的…

在Python中优雅地用多进程:进程池 Pool、管道通信 Pipe、队列通信 Queue、共享内存 Manager Value

Python 自带的多进程库 multiprocessing 可实现多进程。我想用这些短例子示范如何优雅地用多线程。中文网络上,有些人只是翻译了旧版的 Python 官网的多进程文档。而我这篇文章会额外讲一讲下方加粗部分的内容。 创建进程 Process,fork 直接继承资源&am…

zigbee DL-20无线串口收发模块使用(双车通讯,电赛模块推荐)

前言 (1)通常有时候,我们可能会需要让两个MCU进行通讯。而zigbee是最适合两个MCU短距离通讯的模块。他使用极其简单,非常适合两款MCU之间的进行数据交互。 (2)在各类比赛中,经常出现需要两个MCU…

独立看门狗 IWDG

独立看门狗介绍 Q:什么是看门狗? A:可以理解为对于一只修勾的定时投喂,如果不给它吃东西就会狂叫,因此可以通过观察修勾的状态来判断喂它的人有没有正常工作。 在由单片机构成的微型计算机系统中,由于单…

【业务功能篇44】Mysql 海量数据查询优化,进行分区操作

业务场景:当前有个发料表,随着业务数据量增多,达到了几千万级别水平,查询的效率就越来越低了,针对当前的架构情况,我们进行了分区的设置,通过对时间字段,按年月,一个月作…

ios 启动页storyboard 使用记录

本文简单记录ios启动页storyboard 如何使用和注意事项。 xcode窗口简介 以xcode14为例,新建项目如下图,左边文件栏中的LaunchScreen.storyboard 为默认启动页布局。窗口中间部分是storyboard中的组件列表,右侧为预览,可以看到渲…