NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

使用 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:301723
用户头像

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

关注

评论

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

两场CVPR 2024 研讨会,一探大模型闭环真身

飞桨PaddlePaddle

百度 BAIDU 百度飞桨 文心一言 文心大模型

一文让你简单了解跨境电商需要购买堡垒机的几大原因

行云管家

网络安全 电商 数据安全 堡垒机 跨境电商

更智能的广告素材生成!看A/B测试如何驱动AIGC素材调优

字节跳动数据平台

A/B 测试 对比试验

软件测试学习笔记丨Allure2报告中添加测试用例步骤

测试人

软件测试

【亲测有效】axureRP9授权密钥 Mac/Windows

Rose

基于微信小程序的CMS内容管理系统开发笔记

CC同学

银行业降本增效,数字人的应用是关键!

青否数字人

全面测试服务:从人员外包到工具和平台的综合解决方案

霍格沃兹测试开发学社

以科技助力非遗文化传承,华为音乐空间音频让传统民乐重焕“新声”

最新动态

Java 8 内存管理原理解析及内存故障排查实践

vivo互联网技术

实现原理 回收算法 性能诊断及优化技巧

【稳定性】稳定性建设之依赖设计

京东科技开发者

如何借助API提升产品设计的用户体验

伤感汤姆布利柏

SecureCRT for mac如何进行远程连接?含SecureCRT mac永久激活秘钥

Rose

SecureCRT激活 SecureCRT Mac破解版 SecureCRT 安装教程 SecureCRT怎么用 远程管理

企业如何通过数据资产化,激活“数据要素x”,乘出新质生产力

袋鼠云数栈

大数据 数据资产 数据要素 数据资产管理 数据资产化

新手程序员怎么在复杂的代码中寻找bug ?

小魏写代码

autocad2022序列号和密钥 autocad2022中文版详细图文安装教程

Rose

AutoCAD2022序列号 autocad2022秘钥 autocad2022破解版 cad2022Mac版

定时任务优化总结(从半个小时优化到秒级)

京东科技开发者

React memo的原理、实践与思考

京东科技开发者

IPQ9554 vs IPQ8074: Which Chipset Reigns Supreme in the World of Networking and Connectivity?

wifi6-yiyi

5G WiFi7 6G

阿里云 EMR Serverless Spark 版免费邀测中

阿里云大数据AI技术

大数据 spark 数据开发

Beyond Compare 4 for Mac永久激活秘钥 Beyond compare 4中文汉化安装包

Rose

元宇宙离不开数字人,数字人离不开全链条服务!

青否数字人

作为程序员需要配蓝光眼镜吗?

小齐写代码

虚拟主播+电商直播将重塑众多行业格局!

青否数字人

数字人

百度智能云加速「低代码+大模型」融合,爱速搭位居 2023 年 IDC 低代码/无代码领导者象限

百度Geek说

AI 百度智能云

官宣|阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会

Apache Flink

大数据 flink 实时计算

【永久可用】IntelliJ IDEA 2023全版本激活码 适用于macOS/Windows

Rose

intellij idea 2023激活码 intellij idea 2023中文版

掌静脉识别技术助力城轨交通:英特尔携手生态伙伴引领行业转型升级

E科讯

亮数据代理IP轻松解决爬虫数据采集痛点

袁袁袁袁满

日本股票盘搭建

GangguHK

《2023 IT行业项目管理调查报告》新鲜出炉!助力IT行业持续稳步发展

禅道项目管理

项目管理 IT 调查报告 行业趋势

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