Eclipse的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

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

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

相关文章

使用 Web Tracing Framework 分析富 JS 应用的性能

来自谷歌的 Web Tracing Framework 包含一组工具和脚本,用于 JavaScript 相关代码的性能分析。它是重 JavaScript 应用程序的理想选择,而 JavaScript 仅用于简单的交互的网页可能没有必要。有一个手动嵌入选项和一个 Chrome 扩展,用于获取内部…

php yii2 获取表里最大的id_Yii2中自带分页类实现分页

1.首先写控制器层先引用pagination类use yiidataPagination;写自己的方法:function actionFenye(){$data Field::find(); //Field为model层,在控制器刚开始use了field这个model,这儿可以直接写Field,开头大小写都可以,为了规范,我写的是大写$pages new Pagination([totalCou…

android 操作系统升级,关于手机操作系统升级的问题

最近身边的好几个朋友问我操作系统方面问题,操作系统就是负责对计算机硬件进行直接控制以及管理的系统软件,它包含的功能也是多方面的,一般包括处理器管理,储存,文件,设备以及作业管理等等。把操作系统的内…

【完成整理】45套很酷的长影影 LOGO 设计

长阴影其实就是扩展了对象的投影,感觉是一种光线照射下的影子,通常采用角度为 45 度的投影,给对象添加了一份立体感。长阴影(Long Shadow)概念来自于最新非常流行的扁平化设计(Flat Design)。扁…

android 坐标点计算器,Android实现简易计算器

开之前我还是想问问老师,为什么一定要星期天前交作业呢?由于条件限制,作品是赶出来的不是细细琢磨出来的。所以在这版apk中功能较为简易,有待后期再不断更新与优化总体效果图如下布局activity_main.xml部分代码功能代码MainActivi…

1的恢复出厂设置在哪里_罗斯蒙特变送器怎么恢复出厂设置?

罗斯蒙特变送器怎么恢复出厂设置?特殊情况下,罗斯蒙特变送器需要恢复出厂设置。罗斯蒙特变送器进行出厂设置的方法非常简单,只需要用手操器或AMS设备管理器就能操作。罗斯蒙特手操器里有一个恢复出厂调整值–传感器量程调整命令,使用此命令就…

【技术累积】【点】【java】【25】Orderd

基础概念 Orderd是spring core中定义的一个接口,使用它以及相关的Comparator和Order注解,可以实现对元素的排序。 Order 直接先说下Order注解吧,使用场景较多。 Retention(RetentionPolicy.RUNTIME) Target({ElementType.TYPE, ElementType.M…

Guzzle – 构建 RESTful Web 服务的 PHP HTTP 框架

Guzzle 减轻了发送 HTTP 请求和创建 Web 服务客户端的痛苦。它包含建立一个强大的网络服务客户端的工具,包括:服务描述定义的输入和输出的 API,资源迭代器遍历分页资源,尽可能有效地发送大量的请求。 您可能感兴趣的相关文章特别推…

小米手机升级Android6,小米3能升级miui 6?小米3升级miui v6教程

小米3升级miui v6教程来咯~小编还带来了miui v6下载,MIUI V6系统有了很多的变化,小米3是可以升级miui6系统的哦~如果你不知道步骤的话,就请参考下文吧。第一步、下载工具包和线刷完整包,下载完成后解压(请检查线刷包文件后缀名是否…

第一次java作业

转载于:https://www.cnblogs.com/TuTu-winer/p/10591021.html

推荐25款很棒的 HTML5 前端框架和开发工具【下篇】

快速,安全,响应式,互动和美丽,这些优点吸引更多的 Web 开发人员使用 HTML5。HTML5 有许多新的特性功能,允许开发人员和设计师创建应用程序和网站,带给用户桌面应用程序的速度,性能和体验。 这里…

android18lazuli,The Rise And Fall Of Android 17

Hey guys, Tommy here. Today I’m bringing you another blog talking about Android 17. I’ve had mixed emotions on Android 17’s return in Dragon Ball Super since it originally happened. I feel like now with this whole Android 17‘a return is something I sho…

luogu P1462 通往奥格瑞玛的道路

嘟嘟嘟 这道题的题面相当的迷,我看了半天都没懂。最后看了题解的解释才懂。 他是这么个意思:对于所有能活着走到终点的路径,输出每一条路径中过路费最多的城市的最小值。 那么自然想到二分过路费,然后用dijkstra或spfa判断是否存在…

Maven私服(Nexus)搭建总结

因为工作需要,第一次搭建Maven私服,使用的是目前最流行的Sonatype Nexus。搭建私服并不难,官网有很详细的说明,只需几个步骤即可搭建一个可用的私服,但因为公司系统环境(测试)的原因还是遇到几个…

Effeckt.css – CSS3 Transitions Animations 精妙应用

CSS3 不仅仅用作界面效果补充,还可以用来替换传统的一些界面实现,而且效果更酷。Effeckt.css 收集了众多精妙的 CSS3 Transitions & Animations 效果应用,例如:弹窗、按钮、导航、列表、页面切换等等。 您可能感兴趣的相关文章…

html如何让字体自动变色,CSS使文字部分变色

思路思路很简单,就是一个字写两遍,一个字只显示部分,不过不能真的把一个字写两遍。这里就需要用到CSS伪元素:before和:after,记住这个“伪元素”的“伪”字,表明它本来是不存在的。我们的方法就是在伪元素里放置相同的…

Codrops 教程:基于 CSS3 的精美模态窗口效果

Codrops 分享了漂亮的模态窗口效果实现方法,希望给前端开发人员提供一些创新显示对话框的启示。这个方案使用了触发按钮(或任何的 HTML 元素),在点击的时候出现一个模态窗口,带有简单的过渡(或动画&#xf…

html5录像功能限制时间,HTML5拍照和摄像机功能实战详解

开篇最近在做一个chrome app的云相机应用,应用包括拍照、摄像、保存照片视频、上传文件等等核心功能,其中涉及到很多HTML5对媒体流相关的API。写这篇文章的目的,其一是总结梳理知识点,最重要是希望对有相关需求的读者提供一些指导…

选择Vert.x的3个理由

Vert.x是用于JVM的轻量级高性能应用程序平台 现代Web应用程序和移动客户端的兴起重新定义了Web服务器的期望。 Node.js是第一个识别范式转换并提供解决方案的技术。 应用程序平台Vert.x借鉴了Node.js的一些创新,并使其在JVM上可用,将新鲜的想法与最复杂…

FROONT – 超棒的可视化响应式网页设计工具

FROONT 是一个基于 Web 的设计工具,在浏览器中运行,使得各类可视化设计的人员都能进行响应式的网页设计,即使是那些没有任何编码技能的设计师。FROONT 使得响应式网页设计能够可视化操作,能够在浏览器中使用直观的拖放工具进行设计…