如何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行,从而显示红条了。

 

欧姆龙PLC EIP通讯配置方法 欧姆龙EIP通讯配置方法 阅读详情

相关推荐

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

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

Revivedsun的专栏 1万+

Godot 2D游戏开发实战:用GDScript复刻10款经典小游戏(附完整源码)

本文是一份Godot 2D游戏开发实战指南,通过使用GDScript语言复刻10款经典小游戏,帮助开发者快速掌握引擎核心功能。内容涵盖从环境配置、GDScript基础到贪吃蛇、Flappy Bird、打砖块、俄罗斯方块等项目的核心逻辑与代码实现,并附有完整源码,旨在通过实践提升独立开发能力。

gold的博客 778

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

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

qq_46096136的博客 2827

别再只会插拔了!深入Linux内核,手把手调试USB热插拔中断(以高通平台为例)

本文深入探讨了Linux内核中USB热插拔中断的调试方法,特别针对高通平台提供了详细的实战指南。从硬件基础到内核机制,再到中断调试工具和常见问题排查,帮助开发者系统性地解决USB设备识别问题。通过监控中断状态、分析处理流程和高级调试技巧,提升USB热插拔的稳定性和性能。

weixin_29161785的博客 429

粒子群优化与蚁群算法求解多旅行商问题

它要求在给定一组城市和旅行商之间的距离矩阵的情况下,找到一条最优的路径方案,使得所有旅行商可以分别从起始城市出发,途径其他城市,并最终回到起始城市,同时总旅行距离达到最小。这两种算法都是基于群体智能的优化算法,在求解组合优化问题时具有较好的性能表现。假设有n个城市需要被m个旅行商访问,城市间的距离由距离矩阵D表示,其中D(i,j)表示第i个城市到第j个城市的距离。粒子群优化算法是一种基于群体智能的优化算法,其中的粒子代表了潜在的解,并通过模拟粒子在解空间中的移动来搜索最优解。一、多旅行商问题建模。

m0_47037246的博客 553

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

【感知模块算法】障碍物detect+trace+prediction方向介绍

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、多维度看感知问题,体会复杂性二、障碍物/环境目标detect方向1.视觉目标检测方向(1)图像处理认知(2)视觉基础理论部分1、获取数据集---python网页爬虫、买数据、自己录数据、使用开源比赛的数据集2、opencv库的学习3、深度学习框架学习(3)视觉目标检测理论(1)目标检测的概念(2)目标检测的应用场景(3)现有目标检测框架原理及论文【这仅仅是我当初入门学习的框架~

qq_35635374的博客 2894

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

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

weixin_39729262的博客 553

【ROS2】机械臂MoveIt2

navigation2 专注于移动机器人的导航与定位,处理大范围空间的底盘运动;MoveIt2 专注于机械臂的操作规划,处理多关节协同的末端执行器运动。在复合机器人(如,移动机械臂)navigation2 负责移动到目标区域,MoveIt2 负责机械臂抓取。官网:https://moveit.picknik.ai/main/index.html。

郭老二 597

手写中间件之——并行框架(1 并行框架的应用场景和需求)

我们为什么会需要一个带任务顺序编排的并行框架 1 复杂的微服务系统间调用 经常会有这样的调用场景:app(或web前端)调用后台的一个接口,该接口接到该请求后,需要调用其他多个微服务来获取数据,最终汇总一个最终结果返回给用户。 譬如用户请求“我的订单”,后台在收到请求后,就需要去调用用户详情rpc、商品详情rpc、库存rpc、优惠券rpc等等很多个服务。有些服务是可以并行去请求的,但有些服务...

tianyaleixiaowu的专栏 1万+

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万+

【图像去噪】论文精读:FM2S: Self-Supervised Fluorescence Microscopy Denoising With Single Noisy Image

论文题目:FM2S: Self-Supervised Fluorescence Microscopy Denoising With Single Noisy Image —— FM2S:单噪声图像自监督荧光显微镜去噪arXiv 2024!显微图像去噪!通过可视化详细的细胞结构和生物过程,荧光显微镜具有显着先进的生物学研究。然而,由于难以精确建模固有噪声和获取干净图像进行训练,这种图像去噪任务往往面临挑战,这限制了大多数现有方法。在本文中,我们提出了一种有效的。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 408

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

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

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

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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、付费专栏及课程。

余额充值