(60)Java基础 --单元测试

article/2025/9/11 1:37:38

目录

一、测试的概念

二、使用Junit4.x进行单元环境

1、环境搭建

2、使用步骤

3、常见注解

三、规范的Junit测试方式

四、断言

1、为什么要使用断言

2、什么是断言(猜测)

3、常用API


一、测试的概念

先认识到测试的重要性:优秀的软件不是开发出来的,而是测试出来的。

软件测试分类:

        黑盒测试

        白盒测试

黑盒测试:测试工程师

      黑盒测试又称功能测试,主要检测每个功能是否都能正常使用。

      在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,进行测试,主要针对软件界面和软件功能进行测试。

白盒测试:开发工程师

      白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试,主要检测程序内部逻辑是否正常

      在测试中测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。按照程序内部的结构进行测试

      这一方法是把测试对象看作一个打开的盒子,测试人员清楚盒子内部的东西以及里面是如何运作的。

测试先行的思想

      在你不知道如何测试代码前,就不要写代码去完成功能--------->测试先行。

单元测试Junit就属于白盒测试

Java的单元测试:Junit

  1. junit3.x   针对于Java5之前的版本,没有注解,得按照规范来写测试。

  2. junit4.x   针对于Java5以及之后的版本,使用注解,推荐.

  3. junit5.x

二、使用Junit4.x进行单元环境

1、环境搭建

在IDAE中,导入junit的jar包

导入成功,如下图:

2、使用步骤

1、把junit4.x的测试jar,添加到该项目中来;

2、定义一个测试类(约定俗称的规则,非强制要求)

      测试类的名字: XxxTest,例如要测试MyMath类型,一般定义测试类的类名为MyMathTest

3、在MyMathTest中编写测试方法

      例如要测试MyMath中的add方法

import org.junit.Test;
public class MyMathTest {@Testpublic void testAdd() throws Exception{ }
}

注意

      方法是public修饰的,无返回的,该方法上必须贴有@Test标签。

4、鼠标放在测试方法的方法名上,右键点击Run,控制台打印测试结果。

3、常见注解

Junit4.x基于Java5开始的版本,支持注解。

常用注解:

@Test:要执行的测试方法

@Before 每次执行测试方法之前都会执行

@After 每次执行测试方法之后都会执行

@BeforeClass 在所有的Before方法之前执行,只在最初执行一次. 只能修饰静态方法

@AfterClass 在所有的After方法之后执行,只在最后执行一次. 只能修饰静态方法

执行顺序: BeforeClass->(Before->Test-After多个测试方法)-->AfterClass

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;public class MyMathTest {@BeforeClasspublic static void myBeforeClass(){System.out.println("beforeClass...");}@Beforepublic void init(){System.out.println("init...");}@Testpublic void testAdd() throws Exception{System.out.println("测试add方法");}@Testpublic void testMinus(){System.out.println("测试minus方法");}@Afterpublic void myAfter(){System.out.println("myAfter...");}@AfterClasspublic static void myAfterClass(){System.out.println("afterClass...");}
}

执行结果

三、规范的Junit测试方式

直接生成测试类的方式

      在要测试的类的上面右键,点击Generate,然后在建及test就可以生成测试类。

如果想要测试一个类的方法,有两种方法。

第一种测试方法:不创建新的测试类,只需要在要测试的方法上面加上@Test这个注解,但是这个测试方法不能有参数。

第二种测试方法:创建一个test测试目录,在目录下面创建要测试的方法的一样包路径,然后创建一个要测试的类的测试类,测试类的名字可以是 XxxTest 这种格式(非强制要求),然后在测试类

里面可以定义测试方法了。如下代码示例:

要测试的类

public class MyMath {public int add(int x,int y){return x+y;}	public int minus(int x,int y){return x-y;}public int multiply(int x,int y){return x*y;}public int divide(int x,int y){return x/y;}
}

测试类

import org.junit.Assert;
import org.junit.Test;
public class MyMathTest {private MyMath math = new MyMath();@Testpublic void testAdd() {int result = math.add(1,2); //执行MyMath中的add方法获得结果//使用断言Assert.assertEquals(3, result);}@Testpublic void testMinus() {int result = math.minus(1,2); //执行MyMath中的minus方法获得结果//使用断言Assert.assertEquals(-1, result);}@Testpublic void testMultiply() {int result = math.multiply(1,2); //执行MyMath中的multiply方法获得结果//使用断言Assert.assertEquals(2, result);}@Testpublic void testDivide() {int result = math.divide(1,2); //执行MyMath中的divide方法获得结果//使用断言Assert.assertEquals(0, result);}
}

四、断言

1、为什么要使用断言

注意

      不同的公司有不同的规范和要求,大公司对于单元测试的要求较严格,按照公司的要求来就可以,我们在学习中为了直观的观察程序的执行结果还是直接使用输出语句。

2、什么是断言(猜测)

期望值(猜测值):   断言时希望是多少.

真实值(程序运行的结果):   程序内部运算之后实际是多少.

断言成功(猜对了):   期望值和真实值相同,此时显示绿条.

断言失败(猜错了):   期望值和真实值不同,此时显示红条

3、常用API

1、Assert.assertEquals(message, expected, actual):比较的值

   三个参数:

     message:  断言失败的提示信息,断言成功不会显示.

     expected: 期望值

     actual:   真实值

   若真实值和期望值想等,则断言成功.--->绿条

 

以下断言作为了解即可

2、Assert.assertSame(message, expected, actual):比较地址,是同一个对象

   Assert.assertNotSame(message, expected, actual):断言不是同一个对象

 

3、Assert.assertTrue(message, condition):断言condition应该为TRUE

Assert.assertFalse(message, condition):断言condition应该为FALSE

 

4、Assert.assertNull(message, object):断言对象object为null

Assert.assertNotNull(message, object):断言对象object不为null

 

5、@Test(expected=ArithmeticException.class)

   断言该方法报错ArithmeticException

 

6、@Test(timeout=400)

   期望该方法在400毫秒之内执行完成.

上一篇:(59)Java基础 --反射-reflect

下一篇:(61)Java基础 --Lambda表达式


http://chatgpt.dhexx.cn/article/8oSOcPSV.shtml

相关文章

微信小程序消息推送(订阅消息原模板消息)开发流程

注:模板消息没了。 正常开发肯定需要前后端配合,此处都在小程序里写了 参考文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html 订阅消息是个很好的功能,但是现在被不良商家…

小程序之模版消息通知

手把手教你开发微信小程序之模版消息通知 一、模板消息功能概述 模板推送位置&#xff1a;服务通知 模板消息效果展示图&#xff1a; 进入小程序通知&#xff1a; 二、开发前的配置准备 1、验证token是否有效 <?php/*** 验证*/public function valid(){$echoStr $_GET…

java 微信小程序-发送模板消息

开发前准备工作 登录微信公众平台-小程序后台&#xff0c;在模板消息里面设置需要发送的模板&#xff0c;拿到模板id。 地址&#xff1a; https://mp.weixin.qq.com 找到微信官方文档-小程序开发-下发小程序和公众号统一的服务消息接口。 地址&#xff1a; https://developers…

【微信小程序】模板消息推送(测试成功)。

note&#xff1a; 这几天想做微信小程序消息推送的功能&#xff0c;然后在网上找了好多教程&#xff0c;都没解决问题&#xff0c;官方文档写的教程由不够详细&#xff0c;所以走了好多弯路。 现在问题解决了&#xff0c;记录一下。 我在网上找的好多教程都不详细&#xff0c;虽…

微信小程序模板订阅消息推送

尚未接触这块之前&#xff0c;以为是比较麻烦的&#xff0c;经研究并实现后&#xff0c;大致可以分为三个阶段&#xff1a; 申请模板&#xff08;明确推送卡片的格式及内容&#xff09;前端订阅&#xff08;打开可推送开关&#xff0c;允许推送&#xff09;后端推送&#xff0…

微信小程序——发送模板消息

步骤一&#xff1a;获取模板ID 1、通过模版消息管理接口获取模版ID&#xff08;详见模版消息管理&#xff09; 2、在微信公众平台手动配置获取模版ID 登录 https://mp.weixin.qq.com 获取模板&#xff0c;如果没有合适的模板&#xff0c;可以申请添加新模板&#xff0c;审核通…

微信小程序的模板消息与小程序订阅消息

小程序订阅消息功能介绍消息能力是小程序能力中的重要组成&#xff0c;我们为开发者提供了订阅消息能力&#xff0c;以便实现服务的闭环和更优的体验。 订阅消息推送位置&#xff1a;服务通知订阅消息下发条件&#xff1a;用户自主订阅订阅消息卡片跳转能力&#xff1a;点击查…

《微信小程序——发送模板消息》详细步骤

第一步&#xff1a;获取access_token 第一步详情&#xff1a;因为access_token在微信公众号还是小程序&#xff0c;在一个月之内都有获取次数的限制&#xff0c;并且一个access_token只有2小时的有效期&#xff1b;所以每当我们获取一次access_token,就要反复利用&#xff1b;…

微信小程序给公众号发送模板消息

参考文献&#xff1a;小程序如何向公众号推送消息_fbbqt的博客-CSDN博客_小程序给公众号发信息小程序如何向公众号推送消息https://blog.csdn.net/fbbqt/article/details/122167097 前置条件&#xff1a; 微信公众号:AppId和APPSecret(必须认证) 微信小程序:AppId和APPSecret…

微信小程序模板消息实现(PHP+小程序)

参考官方文档和部分资料&#xff0c;总结小程序模板消息推送以及相关注意事项&#xff0c;楼主踩过的坑&#xff0c;特来与大家分享。 一、开发准备&#xff1a; 1. 在微信公众平台 - 小程序的模板中心申请消息模板 二、实现原理&#xff1a; 文档示例&#xff1a;小程序 接…

微信小程序订阅模板消息

1.登录管理员后台&#xff0c;订阅消息&#xff0c;选择模板或者申请模板 2. 开发管理&#xff0c;开发设置&#xff0c;开启消息推送&#xff0c;并验证服务器 3. 开发获取获取模板列表接口&#xff0c;和 测试消息发送接口 4. 前端根据接口配置授权弹窗页&#xff0c;获取用…

微信小程序|如何设置模板消息提醒

管理员如何设置模板消息提醒&#xff0c;管理员如何查看。回复用户咨询信息 使用管理员模板消息提醒&#xff0c;首先配置模板消息 第一步&#xff0c;设置模板消息&#xff0c;配送员通过微信模板消息接收配送信息&#xff0c;需要在平台——微信公众号——模板消息设置&#…

小程序之模板消息

使用模板消息 获取模板 id 登录https://mp.weixin.qq.com获取模板&#xff0c;如果没有合适的模板&#xff0c;可以申请添加新模板&#xff0c;审核通过后可使用&#xff0c;详见模板审核说明 页面的 <form/> 组件&#xff0c;属性report-submit为true时&#xff0c;可…

微信小程序模板消息的两种实现方式

最近在做微信小程序&#xff0c;为了让用户能更加方便的获取到小程序内部的通知&#xff0c;便想着用模板消息来解决此类问题。首先介绍一下两种方法 第一种是传统的按照微信开发文档来实现模板消息的获取&#xff0c;首先要明确的是你要有一个第三方的服务器&#xff0c;因为…

微信小程序实例:创建下发模板消息实例

鉴于目前网络上都还找不到小程序下发模板消息的相关资源&#xff0c;在多次阅读了官方文档今天终于把小程序的模版消息给测通了&#xff0c;接下来介绍在不使用服务器的情况下&#xff0c;前端开发人员在本地怎么测试模板消息的发送。 1、在微信公众平台-小程序的模板中心先申请…

小程序配置模板消息

1.登录微信公众号平台&#xff0c;需要有权限的工作人员进行扫码登录。 2.登录进去点击订阅消息。 3.点击添加按钮&#xff0c;可以在搜索框进行搜索想要的模板类型&#xff0c;然后点击选用即可。 4.选择提醒模板消息的参数&#xff0c;需要跟客户沟通需要什么参数就配什么参…

小程序 发送模板消息的功能实现

☹. 背景 - 小程序开发的过程中&#xff0c;绝大多数会满足微信支付 - 那么&#xff0c;作为友好交互的体现&#xff0c;自然就会考虑到支付后的消息通知咯 - 所以&#xff0c;我的小程序项目也要求完成这个效果&#xff0c;so.分享一下自己的实现步骤&#xff0c;以方便道友们…

微信小程序-----消息模版(最全解释)

最近小程序在码界里嫌弃腥风血雨&#xff0c;每一个码奴都感觉世界给自己又多开一个扇窗&#xff0c;本菜鸟也眼红不已&#xff0c;就尝试着写了一个小程序&#xff0c;今天跟大家分享一下自己在写消息模版时候遇到的坑&#xff0c;希望能帮助每一位路过踩坑的道友&#xff1b;…

微信小程序模板消息推送

时序图 ​​​​​​​ 首先&#xff0c;我们需要知道一件事情&#xff0c;小程序的模板推送分为“一次性订阅”和“长期订阅” 一次性订阅&#xff1a;用户订阅小程序后&#xff0c;程序只能对指定OpenId进行一次推送模板消息&#xff0c;无法多次推送 长期订阅&#xff1a…

小程序发送模板消息给用户 —— 一次性模板实现“长期订阅”

大家好&#xff01;我是我玩亚索我会C&#xff0c;在写小程序时&#xff0c;我们会有向用户发送消息的需求&#xff0c;比如发送提醒通知&#xff0c;或者是一些重要通知来形成一个服务的闭环。这就要用到微信的发送消息功能了&#xff0c;下面我使用Java语言来详细演示下如何使…