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

 

第17篇:深入解析OpenEuler 24.03系统中的逻辑卷管理(LVM) OpenEuler 24.03系统中的逻辑卷管理(LVM)提供了灵活的存储管理方案,通过在物理存储与文件系统间构建抽象层实现动态资源分配。 阅读详情

相关推荐

对E-R模型向关系模式转换的认识

一:基本E-R图的转换 1     属性处理 派生属性:直接忽略。 复合属性:展平技术。 多值属性:单独建立一个关系表,关系名就是多值属性名,如果是实体集的多值属性,关系的属性就是实体集的码加上多值属性,如果是联系集的多值属性,关系的属性就是各个实体集的码加上多值属性,关系的码要具体情况具体分析。 2     基本E-R图转换为关系模式 强实体集:一个关系,关系名就是强实体集名,关系属

优快云_LYY的专栏 2733

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

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

Revivedsun的专栏 1万+

用Python实现斗地主游戏(终端版)

马上就要过年了 大家也都放假了吧 过年必不可少的活动 打牌! 今天带大家来写一份斗地主 (又是好多天没怎么更新,忙成狗啊) 那么实现一个斗地主呢 我们肯定要先完善卡牌系统 from collections import Counter import numpy as np import itertools def cmp_to_key(mycmp): 'Convert a cmp= function into a key= function' class K: def _

Miku_wx的博客 9857

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

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

qq_46096136的博客 2827

银河麒麟系统安装redis【亲测可行】

架构:Linux 5.10.0-9-generic x86_64 GNU/Linux。redis版本:redis-6.2.3.tar.gz。然后在执行make install,结束;OS:银河麒麟V10(SP1)未激活。cpu:I5-10代;

lx_nhs的博客 3336

Synares病毒实战:如何从U盘感染中恢复你的Excel和EXE文件(附专杀工具推荐)

本文详细介绍了Synares感染型病毒的典型特征与传播机制,特别是其通过U盘感染Excel和EXE文件的行为。文章提供了一套从应急隔离、诊断到使用专杀工具进行深度清除与文件恢复的完整实战流程,并推荐了有效的安全软件和修复方法,旨在帮助用户最大程度救回重要数据并构建长效安全防护习惯。

weixin_29230649的博客 1827

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

sentaurus学习笔记(VDMOS仿真)(三)

在Sentaurus中,这通常意味着在2D仿真中,x轴指向下,y轴指向右。定义了在2D模拟中,网格尺寸按照一定的增长率进行扩展,这里的增长率为2.0,意味着远离最小尺寸区域的网格单元大小将是最小尺寸的两倍。定义了2D模拟中网格单元的最小尺寸为0.001微米,这有助于控制网格的最小大小,从而影响仿真的精度和计算成本。表示启用中等级别的日志信息输出,这有助于用户了解仿真过程中发生的事件和可能的问题。表示启用保存调试文件,这可以帮助用户在仿真过程中检查和验证模型的状态。这行代码设置了仿真过程中使用的线程数。

qq_52640792的博客 1807

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

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

weixin_39729262的博客 553

CloudCompare&PCL 体元累加法(树冠体积计算)

文章目录

dayuhaitang1的博客 1553

Android Jetpack 最全面试题及参考答案

要使用 WorkManager 定义一个异步任务,以下是详细步骤。首先,需要创建一个继承自 Worker 类的自定义类,这个类代表了要执行的具体任务逻辑。// 在这里编写具体的任务逻辑,比如从网络下载文件try {在上述代码中,doWork方法就是任务的核心执行逻辑所在,这里模拟了从给定的 URL 下载文件到本地的操作,若下载成功返回,若出现异常则返回。然后,在需要调度任务的地方,比如在某个 Activity 或者 Fragment 中,通过构建 WorkRequest 来安排任务执行。

大模型大数据攻城狮的专栏 1895

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

基于深度学习YOLOv8的花卉检测与识别系统(附完整资源+PySide6界面+训练代码)

通过本项目,我们成功实现了基于YOLOv8的花卉检测与识别系统,涵盖了数据预处理、模型训练、推理与实时检测、以及GUI界面的实现。YOLOv8在花卉检测中的高效性和准确性为实际应用提供了强有力的支持。

斌擎科技 716

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

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

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

jre9下载 jdk9

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

WINCC7.3破解文件

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

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

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

余额充值