二、Java核心技术(进阶)-JUnit
创始人
2025-05-28 18:46:39

一、概念

白盒测试:白盒测试又叫单元测试,针对函数的测试。全面了解程序内部逻辑结构,对所有的逻辑路径都进行测试,一般为开发人员对函数的测试 ,了解数据流向,哪个情况走IF,哪个情况走else;

黑盒测试:黑盒测试又叫功能测试(集成测试),针对功能的测试。不了解具体功能组成的测试行为,一般为产品经理对整个功能验收的测试。检查程序功能是否按照需求规格说明书的规定正常使用。

回归测试:修改旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

二、分类

手动测试:基于main函数,编写测试样例,手动执行程序,手动检查程序结果是否满足预期要求的测试;

 

自动测试:用测试程序批量、反复测试功能程序,并可自动检查功能程序输出结果是否满足预期要求。

三、JUnit

1、maven添加依赖(pom.xml)

junitjunit4.12test

2、idea安装插件

3、修改默认及输出路径

输出路径:${SOURCEPATH}/../../test/java/${PACKAGE}/${FILENAME}

4、编写测试类模板

5、 编写样例


// src/main/java/Triangle.java
public class Triangle {public boolean judgeEquals(int a, int b, int c){if(a <= 0 || b <= 0 || c <=0 )return false;//两边之和小于第三边if(a+b <= c || a+c <= b || b+c <= a ){return false;}return true;}
}

6、生成对应测试类

 

import junit.framework.TestCase;
// static 引用Assert的静态方法
import static org.junit.Assert.*;
/*** @author: Shism* @Date: Created in 13:44 2023/3/15* @Description:**/
public class TriangleTest extends TestCase {public void testJudgeEquals() {Triangle triangle = new Triangle();//参数1为参数2的预期结果,不同抛出异常assertEquals(false, triangle.judgeEquals(-1,2,3));// import static 引用Assert的静态方法 相当于下句//Assert.assertEquals(false, triangle.judgeEquals(1,2,3));}
}

7、单测试结果

 修改函数为错误

测试:

 8、多测试类测试

9、多测试样例测试1

 

 9、偏僻概念

一个测试类中只能声明此注解一次,此注解对应的方法只能被执行一次
@BeforeClass 使用此注解的方法在测试类被调用之前执行
@AfterClass 使用此注解的方法在测试类被调用结束退出之前执行
一个类中有多少个@Test注解方法,以下对应注解方法就被调用多少次

@Before 在每个@Test调用之前执行
@After 在每个@Test调用之后执行
@Test 使用此注解的方法为一个单元测试用例,一个测试类中可多次声明,每个注解为@Test只执行一次
@Ignore 暂不执行的测试用例,会被JUnit4忽略执行

相关内容

热门资讯

异常体系介绍 1、什么是异常 异常:表示程序出现的问题 误区:不是让我们以后不出现异常...
buu(前三页第二弹) RSA... buu [ACTF新生赛2020]crypto-rsa3 1 题目描述: from ...
记一次七牛云存储文件MOV转M... 经过 我们最近的一次开发过程中,发现存在如下一个问题:iOS上传的视频是...
list接口介绍 list部分接口介绍 文章目录list部分接口介绍resizeeraseoperation系列接口r...
Spring的那些开发小技巧(... BeanPostProcessorBeanPostProcessor,中文名 Bean...
谈Linux中的硬链接和软链接 前言:在Linux中内存的存储方式和Windows下不太一样,对于学Li...
Struts2 001 0x00 前言 针对Struts2 系列漏洞进行记录,之前可能零零散散的看了一下&#x...
【spring】@Compon... 1.四个注解的作用是一样的 2.@Controller、@Service、@...
GDKOI2023 普及组游记 DAY 0 上午照常上whk,下午才出发。 下午本来说是3点半校门集合,...
uni-app:购物车页面--... 把结算区域封装为组件 在 components 目录中,新建 my-settle 结算...
A.构造(牛客挑战赛) A.构造一、问题二、分析三、代码 一、问题 二、分析 我们只需要以中间作为分割点,一...
springboot+jsp基... 经过近期对 java 面向对象程序设计、前端知识以及JAVA springboot框架的掌握和学习&...
HTML语言 1.什么是HTML? 1、HTML是超文本标记语言(Hyper Text...
【MySQL】MySQL的事务 目录 概念 什么是事务?  理解事务 事务操作 事务的特性 事务的隔离级别  事务的隔离级别-操作 ...
测试管理之路 —— 如何优化测...   😏作者简介:博主是一位测试管理者,同时也是一名对...
底层原理计划--MySQL Mysql 存储引擎:mylsam/Innob/memoery…. Show engi...
文献阅读(49)—— 基于Tr... 文献阅读(49)—— 基于Transformer青光眼预测 文章目录文献...
你是真的“C”——实用memo... 你是真的“C”——各种实用memory类库函数的详细实现过程😎前言🙌...
[linux] Linux中环... 学校的服务器信息如下命令可以查询: cat /etc/redhat-release ...
计算机底层:奇偶校验码 计算机底层:奇偶校验码校验码的作用:在数据传输或存储时,可...
JavaWeb——urlPat... 1.一个Servlet配置多个访问路径  在WebServlet的配置里面urlPattern的类型...
指针 指针数组 数组指针 二级... 一、本文研究: 指针数组 与 二级指针 数组 与 数组指针 上面的两两一对࿰...
Ubuntu20 + KVM虚... 1 命令汇总 # 查看一下linux是32位还是64位:file /bin/ls # ...
Spring Boot 整合 ... Spring Boot 整合 RabbitMQ 多种消息模式 准备工作集成 RabbitMQ发布/订...
【BEV】TPVFormer复... 1. 前言 在环视图像的网络中,常使用鸟瞰图来进行特征提取,尽管比体素表...
华测RTK参数/华测GPS/华... 1.i93 视觉RTK华测导航i93视觉RTK是集成了华测目前新型视觉技术的一款革新型视觉RTK产品...
西瓜视频登录页面 题目 代码 登录页面td{width: 160px;height: ...
Android kotlin ... 文章目录 一、什么是SharedPreferences1、将数据存储到SharedPreferenc...
算法训练营day53_动态规划... 算法训练营day53_动态规划(3.17提前写) 1143.最长公共子序...
案例23-服务出现频繁掉线情况 目录 一、背景介绍 二、分析原因 1.nacos中data文件的作用 2. data路径下prot...