IDEA中使用JUnit4(单元测试框架)超详细!

article/2025/10/2 1:24:10

IDEA中使用JUnit4教程 超详细!(单元测试框架)

导语:自动化测试的必经之路–Selenium

作者变优秀的小白

GithubYX-XiaoBai

QQ交流群(new): 811792998

爱好Americano More Ice !

话不多说,实战为主!

注:如中途遇到不懂的地方,直接评论留言看到会马上答疑!

首先我们要认识什么是JUnit

JUnit单元测试框架由Erich Gamma和Kent Beck编写的一个回归测试框架(Regresion Testing Framework),主要用于Java语言程序的单元测试,目前使用的主流版本是JUnit以上版本。
此测试框架可用于执行WebDriver的自动化测试框架,话不多说,实战为主。

1.安装IDEA,配置好IDEA的环境(关于IDEA的配置就不在此说明了,度娘多详细的教程都有)
2.打开IDEA,先新建一个Java项目,点击 文件File-新建New-项目Project

3.然后下一步,下一步,我这里项目名使用 Junit4Proj,点击完成
在这里插入图片描述
4.完成项目的创建后,点击 文件File-设置Settings-Plugins 在搜索栏搜索 JUnit,此时出现了几个Plugins,选择 JUnit,有两种方法安装插件(我都框起来了)。Install JetBrains plugin…Browser repositories两种方法,前者直接点击下载就好,如图
在这里插入图片描述
也可用后者方法,相对麻烦了一点(第三种方法更麻烦就不列举了),如图
在这里插入图片描述
在这里插入图片描述
5.当你下载好Junit4 插件后,打开 文件File-设置Settings,如图注明修改配置
在这里插入图片描述
JUnit4 模块里找到此代码 将test去掉
在这里插入图片描述
6.以下是我编写的被测试类Calculator,以它为例。操作步骤为:IDEA新建一个java工程–自定义命名新建package–此package下新建Calculator类
在这里插入图片描述
代码如下

public class Calculator {public int result=0;public int add(int operand1,int operand2){result=operand1+operand2;   //将两个传入参数进行相加操作return result;}public  int subtract(int operand1,int operand2){result=operand1-operand2;   //将两个传入参数进行相减操作return  result;}public int multipe(int operand1,int operand2){result=operand1*operand2;   //将两个传入参数进行相乘操作for(;;){                    //死循环}}public int divide(int operand1,int operand2){result=operand1/0;      //除0操作return result;}public int getResult(){return this.result;     //返回计算结果}}

7.创建Junit4的测试代码,有两种方法(超级简单方便),第一种直接点击被测试类Calculator 使用 Ctrl+Shift+T
在这里插入图片描述
第二种方法 鼠标右键点击类名 使用 goto-Test(本人使用IDEA下错成汉化版表示难受)即可实现
在这里插入图片描述
8.创建测试,根据自身需要来勾选
在这里插入图片描述
我把测试类代码直接给出来,可根据需要自行修改

import org.junit.*;import static org.junit.Assert.*;public class CalculatorTest {private static Calculator cal=new Calculator();@BeforeClasspublic static void setUpBeforeClass() throws Exception{System.out.println("@BeforeClass");}@AfterClasspublic static void tearDownAfterClass() throws Exception{System.out.println("@AfterClass");}@Beforepublic void setUp() throws Exception {System.out.println("测试开始");}@Afterpublic void tearDown() throws Exception {System.out.println("测试结束");}@Testpublic void testAdd() {cal.add(2,2);assertEquals(4,cal.getResult());//fail("Not yet implemented");}@Testpublic void testSubtract() {cal.subtract(4,2);assertEquals(2,cal.getResult());//fail("Not yet implemented");}@Ignorepublic void testMultiply() {fail("Not yet implemented");}@Test(timeout = 2000)public void testDivide() {for(;;);}@Test(expected = ArithmeticException.class)public void testDivideByZero(){cal.divide(4,0);}}

9.创建完成,有可能会报错,如图所描述的可能会报错
在这里插入图片描述
解决方法:找到项目的 pom.xml文件,使用maven直接导入项目
在这里插入图片描述
以下是本测试类需要用到的dependency,可自行复制

    <dependencies><!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.14.0</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>org.jboss.shrinkwrap</groupId><artifactId>shrinkwrap-api</artifactId><version>1.2.6</version></dependency><dependency><groupId>org.jboss.arquillian.junit</groupId><artifactId>arquillian-junit-container</artifactId><version>1.4.1.Final</version><scope>test</scope></dependency></dependencies>

10.所有工作已经做完,此时点击运行就可以啦!运行结果如下:
在这里插入图片描述

此时一个简单的Junit注解使用就算成功了!

最后附上一些使用到的概念:
一个测试类中只能声明此注解一次,此注解对应的方法只能被执行一次
@BeforeClass 使用此注解的方法在测试类被调用之前执行
@AfterClass 使用此注解的方法在测试类被调用结束退出之前执行
一个类中有多少个@Test注解方法,以下对应注解方法就被调用多少次
@Before 在每个@Test调用之前执行
@After 在每个@Test调用之后执行
@Test 使用此注解的方法为一个单元测试用例,一个测试类中可多次声明,每个注解为@Test只执行一次
@Ignore 暂不执行的测试用例,会被JUnit4忽略执行

总结: 大家如果有什么疑问或者建议的地方,可直接留言评论!本人会一一回复!!


http://chatgpt.dhexx.cn/article/5BluJKRh.shtml

相关文章

Junit 4 的使用

一、什么是 Junit 我们来百度一波&#xff0c;什么是 Junit 可以看到哈&#xff0c;Junit 是一个 Java 语言的单元测试框架&#xff0c;这个东西是程序员自测所需要的一个东西&#xff0c;这个测试也被称为白盒测试。&#xff08;下面会去说什么是白盒测试&#xff09; 我们之…

JUnit4

1.JUnit4全面引入Annotation来执行我们编写的测试 2.JUnit4并不要求测试类继承TestCase父类 3.在一个测试类中&#xff0c;所有被Test注解所修饰的public,void方法都是test case,可以被JUnit所执行。 4.虽然JUnit4并不要求测试方法名以test开头&#xff0c;但我们最好还是按照 …

Junit 4详解

Java单元机测试框架 --- Junit4 1、什么是Junit4 JUnit4是一个易学易用的Java单元测试框架,一般我们在写完一段代码或一个方法的时候,都要测试一下这段代码和这个方法的逻辑是不是正确,输入一定的数据,返回的数据是不是我们想要的结果,即我们在写单个业务代码针对结果进行…

IOS UIBUtton

Type 第二个是Customer 常用 按钮的阴影效果只能左右 这是区别于标签的地方 阴影设置没有负值 按钮的代码使用 按钮点击方法 代码设置 传参

UIButton设置图片位置

设置小图片image的位置 image默认图片保持原大小可以通过设置contentVerticalAlignment和contentHorizontalAlignment&#xff0c;修改位置&#xff0c;甚至填充满按钮 // 修改图片位置 图2的效果[button setImage:image forState:UIControlStateNormal];button.contentVerti…

UIButton基础总结

1、UIButton简介 UIButton继承自UIControl。 2、UIButton的四种状态 UIButton的四种状态分别为Normal、Highlighted、Disabled和Selected。 **&#xff08;1&#xff09;Normal&#xff1a;**按钮的普通状态&#xff0c;即为按钮的初始状态 **&#xff08;2&#xff09;Highlig…

[Swift]代码触发UIButton的点击事件

使用极光的手机号码一键登录功能&#xff0c;要求点击按钮后先弹出协议同意&#xff0c;同意协议后自动改变底部协议状态再自动代码触发登录按钮的点击事件。 OC: [but sendActionsForControlEvents:UIControlEventTouchUpInside];Swift: but.sendActions(for: .touchUpInsid…

iOS UIButton控件

UIButton是UIControl的子类&#xff0c;实现了按钮功能&#xff0c;交互事件和控件状态可查看iOS UIControl控件。 1. 初始化 通过指定按钮类型来创建UIButton对象 (instancetype)buttonWithType:(UIButtonType)buttonType;UIButtonType是一个枚举类型 值说明UIButtonTypeCu…

UIButton基础

一、UIButton基础 与UILabel相同&#xff0c;UIButton对象也需要在ViewController中写一个创建函数来建立 UIButton对象的建立如下&#xff1a; //创建普通按钮函数 - (void) createUIRectButton {//创建一个btn对象&#xff0c;更具类型来创建btn//圆角类型btn:UIButtonType…

UIButton 基础

创建一个button 注意button只能通过类方法创建&#xff0c;不能使用alloc 该段代码添加在函数- (void)viewDidLoad 中 //通过类方法创建一个UIbuttonUIButton* btn [UIButton buttonWithType:UIButtonTypeRoundedRect] ;//设置按钮的位置btn.frame CGRectMake(100, 100, 100…

UIButton基础知识和自定义详解

UIButton是我们经常用的UI控件&#xff0c;继承UIControl。这里将对UIButton的基本使用方法和自定义UIButton进行详细介绍。 一、UIBUtton基本知识介绍 对于我们学习一个新的控件、无外乎两种方法。第一种是在xcode中的.m文件查看该控件的属性和相关方法&#xff0c;第二种直…

UI基本控件(二):UIButton

UIButton——按钮 作用&#xff1a;用户交互的主要控件&#xff0c;有六种类型&#xff0c;其中自定义类型使用最为普遍 属性&#xff1a; title属性&#xff1a;是按钮的文字 titleColor属性&#xff1a;是按钮的颜色 image属性&#xff1a;是按钮显示的图像 提示&#…

oracle 用impdp 导入dmp文件

百度整理如下 /*分为7步 */ /*第1步&#xff1a;创建临时表空间(注意&#xff1a;D:\Project\OracleTableSpace\FHADMIN\ 手动创建路径) */ create temporary tablespace C##FHADMIN_TEMP tempfile D:\Project\OracleTableSpace\FHADMIN\C##FHADMIN_TEMP.dbf size 50m a…

★Oracle imp/impdp 导入dmp文件到数据库

使用EXPDP和IMPDP时应该注意的事项&#xff1a; EXP和IMP是客户端工具程序&#xff0c;它们既可以在客户端使用&#xff0c;也可以在服务端使用。 EXPDP和IMPDP是服务端的工具程序&#xff0c;他们只能在ORACLE服务端使用&#xff0c;不能在客户端使用。 IMP只适用于EX…

Oracle:使用Impdp导入dmp文件的详细过程

完全转载自&#xff1a;https://www.cnblogs.com/afei1013/p/13123784.html 这一天为了导入这个Oracle的dmp文件&#xff0c;简直就是血泪史&#xff0c;因本人对Oracle并不是很会&#xff0c;随意踩了很多小白会踩的坑&#xff0c;因此特意记录一下过程&#xff0c;防备下次的…

Oracle expdp/impdp工具使用

Oracle数据泵 一、数据泵的作用&#xff1a; 1.实现逻辑备份和逻辑恢复 2.在数据库用户之间移动对象 3.在数据库之间移动对象 4.实现表空间转移 二 、数据泵的特点与传统导出导入的区别 1.EXP和IMP是客户段工具程序&#xff0c; EXPDP和IMPDP是服务端的工具程序 2.EXP和IMP效率…

impdp导入dmp文件

impdp命令在cmd下直接用&#xff0c;不必登录oracle。只能导入expdp导出的dmp文件。 expdp导出的时候&#xff0c;需要创建 DIRECTORY 导出什么表空间&#xff0c;导入也要什么表空间。 导出什么用户&#xff0c;导入也要什么用户。 如果没有要新建。 从杭州服务器expdp导出…

解决:impdp导入.dmp文件

首先创建一个新用户&#xff0c;保证和导出dmp文件时的用户名&#xff0c;密码以及对应的表空间名相同。 不多说&#xff0c;直接上图 &#xff08;基本只用改下面备注中文部分&#xff0c;根据需求对应替换就行&#xff09; 1.创建用户 create user 用户 identified by 口…

配置NAT实现外网主机访问内网服务器(Cisco)

假设你是某公司的网络管理员&#xff0c;公司只向ISP申请了一个公网IP&#xff0c;现公司的网站在内网&#xff0c;要求在互联网也可以访问公司网站。 192.168.1.2是Web服务器的IP地址&#xff08;内网地址&#xff09;。通过分析可知&#xff0c;需要将内网服务器IP转换成外网…

内网服务器设置代理访问外网

内网服务器设置代理访问外网 背景 首先需要两台云服务器&#xff0c;其中服务器A无公网IP&#xff0c;服务器B有公网IP。 AB公网IP/110.40.255.180内网IP172.17.64.11172.17.64.17 配置A代理 直接配置环境变量即可。 cd /etc/profile.d/ vim proxy.sh进入proxy.sh文件后&…