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)构造

如果您对其他的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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值