如何java单元测试返回void的方法

Java单测void类型的方法详解 主要给大家介绍了Java中单测void类型的方法,文中给出了详细的示例代码,相信对大家的理解和学习具有一定的参考借鉴价值,需要的朋友可以跟着小编下面来一起学习学习吧。 立即下载

转载自:http://supercharles888.blog.51cto.com/609344/989564 BY charles_wang8888

 

大家写单元测试时候,一定比较不喜欢测试那些返回void的方法,因为大多数是执行一些动作序列,感觉没法测试,其实,对于这类方法,如果方法的执行是可能发生异常的,(比如方法本身就用throws语句),那么这种方法就算是void返回值,也是可以测试的。

举个例子,以下就是我写的一个为返回void方法进行的单元测试:

 
  1. @Test
  2. public void testServeResource() throws Exception {
  3. MockWebServer mockWebServer = new MockWebServer();
  4. mockWebServer.init();
  5. MockResourceRequest request = new MockResourceRequest();
  6. request.setParameter("id", "4");
  7. request.setParameter("name", "walmart");
  8. MockResourceResponse response = new MockResourceResponse();
  9. MockPortletPreferences preferences = new MockPortletPreferences();
  10. preferences.setValue(RSLaunchConstants.RS_LAUNCH_PORTLET_PREFERENCE_REST_WS_URL, "http://localhost:28080/");
  11. request.setPreferences(preferences);
  12. try{
  13. rsLaunchPortlet.serveResource(request, response);
  14. mockWebServer.destory();
  15. assertTrue(true);
  16. }catch(Exception ex){
  17. //normally,the execution should never reach here ,so if reach here , we fail this UT
  18. assertTrue(false);
  19. }
  20. }

我们可以看到,最关键的地方在第13到20行之间,我们用一个try块包含了可能炮异常的代码段,并在这个块尾部加上assertTrue(true),而在catch块中加上assertTrue(false),那么结果就很明了了,如果这个方法是正确的执行,那么它肯定是执行完try块中的所有的语句,所以会执行assertTrue(true)而显示绿条。但是如果这个方法执行不正确,那么就会在14或者15行抛出异常,从而执行catch块中,所以就会执行到19行,从而显示红条了。

 

SQLite → PostgreSQL 迁移脚本与踩坑清单 本文提供了SQLite迁移到PostgreSQL的两种可靠路径:首选使用pgloader工具自动转换schema和数据,支持类型映射和并行复制;备选方案通过sqlite3导出CSV再用PostgreSQL的COPY命令导入,适合需要自定义清洗的场景。重点介绍了数据类型映射规则、迁移步骤、校验方法和常见问题,包括自增主键、布尔值、时间类型等关键差异处理。迁移后需进行行数核对、哈希抽样等校验,并给出了性能优化建议。最后强调迁移不仅是数据转移,更需要同步升级数据模型和索引策略,根据业务场景选择合适的数据库方案。 阅读详情

相关推荐

Rstan下载安装攻略

准备把Rtools删掉,重新下载(胡乱猜测是安装顺序的问题),但是卸载时显示Rtools被占用,但我已经把该关的都关了。这一问题的出现,直接让我卸载掉了Rstudio,又重新安装了一个,不过这次安装在另一个磁盘,因为原来的内存不多了。或者参考知乎,使用清华镜像网址进行下载:(知乎链接)https://zhuanlan.zhihu.com/p/346947595(清华下载链接)https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/Rtools/

m0_64643017的博客 3099

Java单元测试对void方法的测试

日常系统单测开发都是通过对方法的返回值进行验证。而void方法没有返回值,这是我们可以对其行为进行验证。下面是几个常见的例子,被验证方法均是void方法。这时我们就可以通过mock并验证这组行为是否发生。在java项目中一般通过mockito来实现。......

Revivedsun的专栏 1万+

使用MeshLab高效对齐3D模型:从OBJ导入到坐标修正全流程

本文详细介绍了使用MeshLab高效对齐3D模型的全流程,涵盖从OBJ导入、坐标修正到最终导出的核心步骤。通过将模型中心归位至坐标原点,并利用主轴对齐功能快速摆正模型,为后续的3D打印、体素化等处理奠定精确的几何基础。

weixin_29313423的博客 93

Java基础方法返回值类型是void的情况

代码】Java基础方法返回值类型是void的情况。

qq_46096136的博客 2827

YOLO详解

本文参考知乎 https://zhuanlan.zhihu.com/p/25236464 1. YOLO的创新点 YOLO将物体检测作为回归问题求解。基于一个单独的end-to-end网络,完成从原始图像的输入到物体位置和类别的输出。 从网络设计上,YOLO与two steps的目标检测方法如RCNN、Fast RCNN和Faster RCNN的区别如下: YOLO训练和检测均是在一个单独网...

UnknownPlayer的博客 9957

LSM6DS3TR-C IMU传感器入门:从MEMS原理到姿态解算实战

惯性测量单元(IMU)是现代智能设备实现运动感知的核心部件,其基础原理基于微机电系统(MEMS)技术。MEMS加速度计通过检测质量块在惯性力作用下的位移来测量线性加速度,而陀螺仪则利用科里奥利力效应感知角速度。这种技术使得微型化、低成本的6自由度运动测量成为可能,为机器人、无人机、可穿戴设备等提供了关键的空间姿态和运动状态信息。在实际工程中,开发者需要掌握I2C/SPI通信协议、传感器数据读取与校准,并通过互补滤波等算法融合加速度计和陀螺仪数据,实现稳定的姿态解算。LSM6DS3TR-C作为一款高性价比的6

weixin_28684655的博客 596

void method单测

参考文章:https://blog.knoldus.com/unit-testing-void-methods-with-mockito-and-junit/ https://blog.youkuaiyun.com/dongjian764/article/details/17303279 http://www.cocoachina.com/articles/64158 public class ServiceHolder { private final Set<Object> services =

yangyangrenren的专栏 873

一根同轴线,真的扛得住 4K 吗? ——从摄像头带宽算起,聊透车载 SerDes 接口选型

如果你记住这三句话,这篇文章就值了:🎯摄像头带宽 = 分辨率 × 位深 × fps × 开销4K RAW 摄像头 ≈ 3.7Gbps,是现实不是理论SerDes 选型,宁可多留 20%,不要刚刚好。

weixin_43199439的博客 193

java void方法的单元测试_Spock单元测试框架实战指南五 - void方法测试

本篇讲解如何针对void方法,即无返回结果的方法测试void方法void方法的测试不能像前面几篇介绍的那样在then标签里验证返回结果,因为void方法没有返回值一般来说无返回值的方法,内部逻辑会修改入参的属性值,比如参数是个对象,那代码里可能会修改它的属性值,虽然没有返回,但还是可以通过校验入参的属性来测试void方法还有一种更有效的测试方式,就是验证方法内部逻辑和流程是否符合预期,比如:应该走...

weixin_39729262的博客 553

回归预测 | MATLAB实现MPR多元多项式回归

回归预测 | MATLAB实现MPR多元多项式回归

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 1645

Vue2 - 最新实现接入使用天地图及卫星视图切换功能,在国家天地图上自由切换地图显示类型(卫星视图/地形视图/卫星混合/地形混合/普通视图)vue天地图切换视图显示改成卫星风格,切换地图图层完整代码

vue2,nuxt2,天地图,视图,卫星,地图类型切换,vue天地图,改成卫星视角,在线地图切换,来回切换卫星图,天地图如何实现来回切换卫星图,地形图,卫星视图,vue中使用天地图自定义样式切换地图图层,切换报错,加载出错,卫星图太卡,地图图层更换,vue安装集成天地图详细示例源码,切换地图的样式,在天地图中如何将地图的类型随意更换,提供多种视图模式用户自由点击更换,VUE引入天地图卫星版,详细教程示例源码代码,天地图切换卫星用什么api,卫星视角API方法,vue2卫星天地图,能改地图的显示方式,图层类型

🏆 前端领域优质创作者 4143

PowerMockito单元测试(2)-返回void的方法测试覆盖

   2. 返回void的测试覆盖  【要测试的方法】: @Component public class UserDao{ @Autowired private UserMapper userMapper @Autowired private SystemErrorRecoder systemErrorRecoder public void putUser(UserDTO userDto){ try{ userMapper.putUser(userDto); }catch(Dat

假人一个的博客 1万+

huggingface下载提示huggingface_hub.errors.EntryNotFoundError:404 Client Error: (Request 1D: Root...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1233

【Java 单元测试进阶--无返回值的void方法如何进行单元测试】

Java 单元测试进阶--无返回值的void方法如何进行单元测试 doReturn.when & when.thenReturn & doAnswer...when & doNothing & doThrow & verfiy

独上高楼,望尽天涯路。 3449

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Junit单元测试出现“No tests found with test runner ‘JUnit 5‘“的原因

Junit单元测试出现"No tests found with test runner 'JUnit 5'"的原因 直接说原因吧,一般出现这个问题有2种情况 单元测试的方法出现了static关键字,意思就是单元测试方法不能是静态方法. 单元测试的方法返回值不为void,意思就是单元测试的方法只能是void方法。 如下代码出现静态方法的情况: package com.wongoing.hadoop.test; import org.junit.jupiter.api.Test; public cl

分享技术,传播知识! 3134

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java void方法的单元测试_JUNIT测试void方法

我有一个充满void方法的Java类,我想进行一些单元测试以获得最大的代码覆盖率。例如我有这种方法:protected static void checkifValidElements(int arg1, int arg2) {method1(arg1);method2(arg1);method3(arg1, arg2);method4(arg1, arg2);method5(arg1);met...

weixin_42324905的博客 2756

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java 单元测试错误:no tests found with test runner “Junit5”

在用java做单元测试时出现如下错误:   这是因为你方法的返回值不为void,应该修改为void 当你把返回值修改为void时,则不会报此错误;  

qq_38904342的博客 3万+

java void方法的单元测试_关于java:Spock单元测试框架实战指南五-void方法测试

本篇解说如何针对void办法,即无返回后果的办法测试void办法void办法的测试不能像后面几篇介绍的那样在then标签里验证返回后果,因为void办法没有返回值【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元一般来说无返回值的办法,外部逻辑会批改入参的属性值,比方参数是个对象,那代码里可能会批改它的属性值,尽管没有返回,但还是能够通过校验入参的属性来测试void办法还有一种更无效的测试...

weixin_28727975的博客 661

Java怎样单测void类型的方法?

Java的Sevice层会有很多void类型的方法,比如save*、update*,这类方法只是做一些更新,不会有返回值,其单测不能根据方法的返回值来编写,只能采用特殊方法; 本方法环境:Mockito、testng 被测试的方法: 想要被测试的VOID方法 Java @Override public void updateRu...

蚂蚁学Python 2399

aspectj 获取方法入参_Spock单元测试框架实战指南五 - void方法测试

本篇讲解如何针对void方法,即无返回结果的方法测试void方法void方法的测试不能像前面几篇介绍的那样在then标签里验证返回结果,因为void方法没有返回值一般来说无返回值的方法,内部逻辑会修改入参的属性值,比如参数是个对象,那代码里可能会修改它的属性值,虽然没有返回,但还是可以通过校验入参的属性来测试void方法还有一种更有效的测试方式,就是验证方法内部逻辑和流程是否符合预期,比如:应该走...

weixin_42516021的博客 391

JAVA单元测试通过Mockito修改方法的入参

when().thenReturn()的方式Mock即可,但是对于没有返回值的方法,但是在方法内部却对方法的入参做了一些逻辑的方法,就不能再用这种方式,应该用另外一个Mock方法,即doNothing。如果方法有返回值,直接使用。

sunglow1126的博客 1554

junit单元测试,以及使用的时候报错解决方法 org.junit.runners.model.InvalidTestClassError: Invalid test class ‘......

maven仓库地址 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependen

myStyle的博客 3万+

no tests were found

将带有@Test的方法返回类型设为void。

m0_64998696的博客 316

Android单元测试——Junit+Mock

首先是单元测试很重要!很重要!很重要! 目前主流的是Junit4 来进行Java的单元测试 首先需要导入的包有 import org.junit.Test; import static org.junit.Assert.*;//引入断言 不同于Junit3,测试类不需要再继承TestCase类,可以直接声明,此外,测试方法也不需要再以test开头,但是为了方便使用,最好以te...

qq_37763130的博客 1186

阿里新型单元测试 Mock 工具开源

目录 访问私有成员字段和方法 方法一:使用@EnablePrivateAccess注解 方法二:使用PrivateAccessor工具类 快速Mock被测类的任意方法调用 1.覆写任意类的方法调用 2.覆写被测类自身的成员方法 3. 覆写任意类的静态方法 测试无返回值的方法 1. 修改外部变量的void方法 2. 调用外部方法的void方法 项目地址 TestableMock是基于源码和字节码增强的Java单元测试辅助工具,包含以下功能: 1. 访问被测类私有成员:使单元测试能直.

小白的博客 2182

史上最轻量​!阿里新型单元测试 Mock 工具开源

来源:gitee.com/mirrors/TestableMockTestableMock是基于源码和字节码增强的Java单元测试辅助工具,包含以下功能:访问被测类私有成员:使单元测试能...

Java笔记虾 463
上一篇: struts2 select标签 下拉列表
下一篇: There is no READABLE property named 'day' in class 'java.lang.String';You have an error in your SQL
funi16
博客等级 码龄16年 55粉丝 56原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值