mockito_Eclipse的Mockito模板

mockito

有时候,我想念树林里的树木-那是一段令人不安的长时间。 我最近才再次意识到这一点,在无数次中键入了一个更详细的模仿表达式之一。 有问题的语句是一个doAnswer(Answer)构造,使用涉及到的静态导入和泛型代码进行编码总是很麻烦。

尽管我定期使用Eclipse Java模板生成例如循环,切换和其他构造,但我花了几年( 仅… )的想法自己为我每天使用的模仿表达式编写了一些模板 。 毫不奇怪,事实证明,这使我的工作有所简化。 因此,我认为与感兴趣的人分享github要点可能是一个好主意。

我不会详细介绍所有模板,但将在ArgumentCapture构造的基础上简要说明该概念。 对于后者,我几乎总是遇到一个问题:使用驼峰式大小写结合自动完成功能会自动添加一个类型参数,之后我必须手动将其删除: 1

论证捕获类型

使用Java模板可以避免此问题,因为您只需键入模板名称的首字母,然后从内容助手的下拉列表中选择即可。 生成完整的代码构造,您唯一要做的就是填写变量2

参数捕获模板选择1

基本上,您可以使用制表符遍历生成的构造。 如下图所示,第一个模板变量已标记并准备好进行编辑。 具有相同名称的变量将属于同一变量,并且将被同步更改(请参见图片中的泛型type // classname-variable)。 完成当前变量的操作后,请使用“ tab”键标记下一个变量。 一旦完成整个构造,请按“ enter”跳到图像中描述为光标位置的绿色垂直线。

arguments-capture-template-3

请注意,如果需要,模板还可以处理导入和静态导入。 最终,您将得到类似于以下测试方法摘录的第一行的内容:

arguments-capture-conclusion-1

尽管ArgumentCapture构造不是很大,但我非常感谢现在有一个模板。 我可以想到的最快的打字方式(使用内容辅助,使用CRTL + 1分配给局部变量等)需要七个步骤,而此处描述的方法在四个步骤3 4中也是如此

最后一个示例图像显示了doAnswer(Answer)提到的更详细的doAnswer(Answer)构造的生成表达式将是什么样子:

回答

为了完整起见,我在本文的结尾部分列出了要点5中可用的模板:

模板名称 描述
回答 Mockito doAnswer(answer).when(mock).call()构造
doAnswerOnArgument Mockito doAnswer(answer).when(mock).call()构造可操纵调用参数
doReturn Mockito doReturn(value).when(mock).call()构造
Mockito doThrow(throwable).when(mock).call()构造
上课 Mockito ArgumentCaptor.forClass(Type.class)构造
什么时候回答 Mockito when(mock.call())。thenAnswer(answer)构造
whenThenAnswerOnArgument Mockito when(mock.call())。thenAnswer(answer)构造用于操纵调用参数
当然后返回 Mockito when(mock.call())。thenReturn(value)构造
什么时候扔 Mockito when(mock.call())。thenThrow(throwable)构造
  • Github Gist下载: https : //gist.github.com/fappel/8863588

如果您对其他的Mockito模板,改进,批评,替代方法等有任何想法,我当然会很高兴在此提供。 所以不要害羞,试试看!

  1. 嗯,可以使用收藏夹和静态导入来解决该问题,例如我亲爱的Holger Staudacher在他的文章中描述的有效使用 Mockito 。 但是由于无法解释的原因,我没有使用ArgumentCapture将其输入我的手指中
  2. 'forClass'可能不是最有用的名称,但是每个人都可以自由选择一个更好的名称!
  3. 请注意,“步进”并不是指按键。 根据您的环境,实际击键次数可能会有所不同。 此外,我将不提供“步骤”一词的精确定义–我将由您自己进行比较
  4. 除了实际的步数,在我看来,模板方法消耗的脑力更少,但这可能完全是个人的错觉
  5. 高度赞赏对名称和描述的改进建议

参考:来自Code Affine博客的JCG合作伙伴 Frank Appel的Eclipse Mockito模板 。

翻译自: https://www.javacodegeeks.com/2014/02/mockito-templates-for-eclipse.html

mockito

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344333.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】电大中专建筑力学作业 题库

1.当变形在所研究的问题中成为主要因素时一般就不能再把物体看作是刚体了。 A.错误 B.正确 正确 正确答案:左边查询 学生答案:B 2.外效应使物体的形状发生变化。 A.错误 B.正确 正确 正确答案:左边查询 学生答案:A 3.约束必然对被…

linux系统运行powerbi,使用 Power BI 服务 - Power BI | Microsoft Docs

快速入门 - 使用 Power BI 服Quickstart - Getting around in Power BI service10/12/2020本文内容备注Power BI 正在转换为新外观,文档中的某些图像可能与服务中显示的图像不匹配。Power BI is moving to a new look, and some images in the documentation may no…

【渝粤教育】电大中专微生物与寄生虫基础作业 题库

1.属于真核型微生物的是()。 A.衣原体 B.放线菌 C.真菌 D.病毒 E.支原体 错误 正确答案:左边查询 学生答案:B 2.下列哪一个特点不是微生物的共有特点() A.结构简单 B.肉眼不直接可见 C.需要借助显微镜观察 …

ue 编写linux脚本,UltraEdit23 sh文件 (shell脚本)着色

网上有UltraEdit早期版本的添加方法;但是这新版本有点不同;方法如下:安装后,到AppData\Roaming\IDMComp\UltraEdit\wordfiles 目录下添加UnixShell.uew;文件内容和网上的一样:/L20"UNIX Shell Scripts…

JMetro版本4.8已发布

再一次问好! JMetro Java 4.8版JavaFX主题刚刚发布。 我们即将接近下一个主要版本的版本5.0。 这是已经过彻底改造的旧样式: 日期选择器 树视图 以及经过调整或更改了CSS结构的旧版本: 表格检视 列表显示 组合框 评级控制 4.8版详细…

【渝粤教育】电大中专新媒体营销实务 (3)作业 题库

1.( )对新媒体的定义为:“以数字信息技术为基础,以互动传播为特点,具有创新形态的媒体。” A.新传媒产业联盟秘书长王斌 B.华纳兄弟总裁施瓦茨威格 C.联合国教科文组织 正确 正确答案:左边查询 学生答案&am…

【渝粤教育】电大中专测量学作业 题库

1.测量学是研究地球的形状和大小以及确定地面点()位置的科学。 A.平面 B.空间 C.曲面 D.高程 错误 正确答案:左边查询 学生答案:A 2.测量学中的水准面是一个()。 A.斜平面 B.水平面 C.竖直面 D.曲面 正确 正…

【渝粤教育】电大中专电商运营实操 (14)作业 题库

1.电子商务最重要的是“商务”,而网站只不过是电子商务的后台支撑。 ( ) A.正确 B.错误 错误 正确答案:左边查询 学生答案:未作答 2.网上购物仅仅是电子商务的一小部分,而完整的电子商务过程是一切利用现代…

linux view查看日志命令,linux查看日志文件内容命令tail、cat、tac、head、echo、vi

linux查看日志文件内容命令tail、cat、tac、head、echotail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C,---------------------------linux 如何显示一个文件的某几行(中间几行)从第3000行开始,显示1000行。即显示3000~3999行cat fi…

【渝粤教育】电大中专电商运营实操作业 题库

1.电子商务最重要的是“商务”,而网站只不过是电子商务的后台支撑。 ( ) A.错误 B.正确 错误 正确答案:左边查询 学生答案:未作答 2.网上购物仅仅是电子商务的一小部分,而完整的电子商务过程是一切利用现代…

【渝粤教育】电大中专电子商务网站建设与维护 (21)作业 题库

1.阿里巴巴是于1999年创立的( )的网上贸易市场平台。 A.零售商对消费者 B.企业对消费者 C.企业对企业 D.企业对零售商 错误 正确答案:左边查询 学生答案:未作答 2.阿里巴巴网站的不足不包括( ) A.“诚信通”…

linux 下对u盘分区吗,linux对中毒u盘分区和格式化

linux对中毒u盘分区和格式化发布时间:2008-08-29 10:36:49来源:红联作者:aibss原创人:a3563u盘情况是4G,分2个区,分别为2G。其中一个分区在windows下“我的电脑”里看不见,但在磁盘管理里能看见,但没有盘符&#xff0c…

Java 11快多少?

尽管大多数开发人员仍然使用Java 8 ,但Java 11还是在不久前发布的。 让我们看看其中哪个对OptaPlanner更快。 找出答案的最佳方法当然是运行OptaPlanner基准测试。 本文是我们针对Java 8的类似文章的后续文章 。 基准方法 为了运行基准测试,我们使用了&…

linux5.9安装教程,Linux内核5.9的最重要功能及安装方法

原标题:Linux内核5.9的最重要功能及安装方法Linux内核5.9带来了吸引数据中心管理员的诸多性能提升。本文作者着重介绍了改进之处,并介绍了如何安装主线内核。与5.8一样,Linux内核5.9确实没有任何改变游戏规则的功能,至少对普通用户…

远程桌面服务怎么测试_快速的远程服务测试

远程桌面服务怎么测试测试与远程服务交互的代码通常非常困难。 有很多折衷因素会影响您可以编写哪些测试以及要编写的测试数量。 在大多数情况下,您对从服务中获取的数据的控制为零,这使得断言至少很难说。 不久前,我使用VCR库针对远程服务编…

linux 编译src.rpm,CentOS6.5下编译src.rpm包的内核

CentOS6.5原生内核版本是Linux 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux在网上下载对应版本的src.rpm包:kernel-2.6.32-431.el6.src.rpmhttp://rpm.pbone.net/index.php3/stat/4/idpl/24668468/dir/scientific_l…

Apache Payara:让我们加密

不久前,我写了一个小教程 ,介绍如何生成“让我们加密SSL”证书并将其安装在Glassfish Java EE平台上。 这个技巧对我来说是一个奇迹,但是每三个月必须手动更新和重新安装证书变得很烦人。 我做了一些研究,并且与第一个教程一样&a…

linux命令 dstat,关于linux:每天学一个-Linux-命令103dstat

命令简介dstat 命令是一个用来替换 vmstat、iostat、netstat、nfsstat 和 ifstat 这些命令的工具,通用的系统资源统计工具,是一个全能零碎信息统计工具。[rootcentos7 ~]# dstat-bash: dstat: command not found[rootcentos7 ~]# yum install dstat -yds…

openssh arm linux 编译,openssh编译安装到ARM嵌入式系统中

目录一.SSHD编译(此步骤在虚拟机上执行)1.1 在/root/目录下创建ssh目录1.2 交叉编译zlib1.3交叉编译openssl1.4交叉编译openssh二.移植(此步骤在开发板上执行)2.1 在开发板上建立需要的目录2.2 下面是在开发板上操作2.3修改sshd_config三、加入自启动脚本…

反射xss 测试地址_使用反射进行测试

反射xss 测试地址根据我以前的帖子,我正在撰写有关“单一责任原则”的演讲。 我花了大部分时间。 同时,我想分享一个示例代码,说明如何在类中测试内部字段。 我这样做是为了进行特殊的测试,这更多的是集成测试。 在依赖类的标准单…