写点什么

使用 Mockito 1.5 监视普通对象

  • 2008-09-22
  • 本文字数:726 字

    阅读完需:约 2 分钟

Mockito 是一个针对 Java 的 mocking 框架。它与 EasyMock 和 jMock 很相似,但是通过在执行校验什么已经被调用,它消除了对期望行为(expectations)的需要。其它的 mocking 库需要你在执行记录期望行为(expectations),而这导致了丑陋的初始化代码。

正如 Mockito 用户、软件工程师 Hamlet D’Arcy 在其博客中所说,无需期望行为(expectations)是个大成就:

“Mockito 真的不需要期望行为,这简化了单元测试。从个人角度来说,由于该原因,我更喜欢 Mockito API 而不是 EasyMock API。”

ThoughtWorks 的 Ketan Padegaonkar 也对 Mockito 的独特语法赞赏有加:

“它的语法看起来比 JMock 的好多了,会让人一见钟情;我现在已经迷上测试了。”

Mockito1.5 版增加了“监视”非 mock 对象的能力,这是通过验证对其特定方法的调用实现的。例如:

List list = new LinkedList();
List spy = spy(list);“spy”变量现在作为 list 对象的句柄。它可被看作一个 mock 对象。例如我们可以用 stub 对其 size 方法进行处理:

stub(spy.size()).toReturn(100);我们还可以调用并验证普通的方法:

spy.add("one");
verify(spy).add("one");另一个改进就是可读性更好的桩语法。例如:

stub(obj.someMethod()).toReturn(result);可写做:

doReturn(result).when(obj).someMethod();这与旧式写法长度一样,但可读性更好并且括号也少了。除了 doReturn(),还有 doThrow()、doAnswer() 及``doNothing() 期望行为。

Mockito 的其他有用的特性包括:

  • 模拟具体类和接口的能力
  • 客户化参数匹配器
  • 顺序验证
  • 干净的堆栈跟踪

上手 Mockito 就如同将一个 JAR 文件加到 classpath 中一样简单。请访问 Google Code project 以了解安装说明、文档及更多代码示例。

查看英文原文: Mockito 1.5 spies on plain objects

2008-09-22 05:301876
用户头像

发布了 88 篇内容, 共 269.2 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

20210209—生活记录

VC

二月春节不断更

/(ㄒoㄒ)/~~晚了

Nydia

LeetCode题解:297. 二叉树的序列化与反序列化,DFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

云计算自动化对于虚拟化环境意味着什么?

云计算

产品经理训练营-作业四

胡小湖

数据结构与算法 - 排序1.冒泡排序

小马哥

Java 排序算法 数据结构与算法

HTTPS的安全性从何而来?

Elasticsearch 精确匹配与全文搜索

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

用例文档练习

王一凡

产品经理

业务流程与产品文档

王一凡

产品经理训练营

用例--学生智慧课堂扫码加入课堂

赝品

【LeetCode】K 个不同整数的子数组题解

Albert

算法 LeetCode 2月春节不断更

产品经理训练营第四次作业

Jobs

流媒体传输协议之 RTP(下篇)

阿里云CloudImagine

音视频 流媒体 rtp

产品训练营第四周作业

朱航

第四章作业-用例

Wangyunnfei

如何检验人生的假设

熊斌

个人提升 2月春节不断更

第四周总结

Jove

作业4

YING꯭YING

金融科技的碎片化思考(中)

曲水流觞TechRill

金融科技

第四周作业

墨狂之逸才

产品经理第四周作业

朱琴

极客时间购买课程用例

Geek_a32093

产品训练营 - 作业 4

简小一

「产品经理训练营」作业 04

🌟

产品经理 产品经理训练营 产品经理训练

产品经理训练营第0期-第四次作业

孙行者

第0期 第四周作业 极客大学产品经理训练营

面试官系列:讲讲快速失败和安全失败的区别?

后台技术汇

面试 2月春节不断更

第4周作业_贷款申请用例

园子

互联网金融 小额贷款 去中心化金融借贷系统开发

盘点和程序员相关的那些事,让你不再被割韭菜,薅羊毛!

孙叫兽

程序员 程序人生 高薪 话题讨论

计算机中的流水线技术到底是个啥?

冰河

程序员 进阶 计算机 流水线技术

架构11周

FreeOcean

不可用原因

使用Mockito 1.5监视普通对象_Java_Matthew Bass_InfoQ精选文章