写点什么

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

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

关注

评论

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

案例上榜 | Kyligence x 中国平安人寿北斗指标设计平台

Kyligence

数据分析 数智化

“科创中国”青百会轮值主席吴甜:以大语言模型为代表的AI将引发产业变革

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

不要仅限于只做测试工作

老张

软件测试 职场成长

提升制造业智能化水平——免费MES系统的领航者

万界星空科技

开源 制造业生产管理系统

关于搭建海外社交APP源码的干货

山东布谷网络科技

海外直播源码

聊聊 Docker 和 Dockerfile

互联网工科生

Docker 容器 Dockerfile

为什么马斯克和奥特曼都想重振加密货币?

树上有只程序猿

人工智能 AGI

高效构建 vivo 企业级网络流量分析系统

vivo互联网技术

流量采集 流量监控 sFlow

风很大的“云数仓”到底怎么用?三家企业交出答卷

字节跳动数据平台

数据库 云原生 企业号 8 月 PK 榜

Spring Cloud实战案例 │ Apollo和Zuul的整合开发

TiAmo

Spring Cloud Apollo Zuul

天翼云加入云原生安全实验室,推进行业标准制定和生态建设!

天翼云开发者社区

云计算 云原生

但因热爱,愿迎万难,OpenTiny Vue Playground正式上线🎉

OpenTiny社区

开源 Vue 前端

人人都在聊的IPD(集成产品开发)到底是什么?一文让你读懂TA!

禅道项目管理

华为 项目管理 软件 硬件

基于分级安全的OpenHarmony架构设计

OpenHarmony开发者

OpenHarmony

小灯塔系列|中小企业数字化转型系列研究——云存储测评报告

向量智库

HPC中常见的调度器介绍

天翼云开发者社区

云计算 HPC 高性能计算

zos静态网站托管的使用和原理

天翼云开发者社区

静态网站托管 静态网站

带你认识数仓的监控系统TopSQL

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

MoE 系列(六)|Envoy Go 扩展之并发安全

SOFAStack

golang 安全 后端 框架 envoy

【华秋推荐】物联网入门学习模块 ESP8266

华秋电子

物联网

下一代MES系统架构分析与选型参考

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

以指标驱动,保险、零售、制造企业开启精益敏捷运营的新范式

Kyligence

数据分析 数智化

小灯塔系列-中小企业数字化转型系列研究-ERP测评报告

向量智库

小灯塔系列|中小企业数字化转型系列研究——IM测评报告

向量智库

MoE 系列(七)| Envoy Go 扩展之沙箱安全

SOFAStack

golang 后端 框架 envoy 安全沙箱

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