写点什么

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

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

关注

评论

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

XMind 2024思维导图 v24.04 中文版 for mac 支持M1/M2

Rose

HCDG城市行南京站 | CodeArts重塑软件开发加速企业研发转型技术沙龙圆满举办

软件开发 华为云 应用开发 智能编程

CheckList对交付质量的重要性

老张

质量管理 软件测试 checklist

LLM 大模型学习必知必会系列(三):LLM和多模态模型高效推理实践

汀丶人工智能

大模型 大模型推理

区块链智能合约

web3区块链创业团队DappNetWork

掌握postman,开启API测试新纪元!

测吧(北京)科技有限公司

测试

sugargoo淘宝代购集运系统类似软件是哪家公司开发的?

tbapi

淘宝代购集运系统 sugargoo

Databend 开源周报第 146 期

Databend

install4j for Mac 多平台使用的Java安装文件生成工具

Rose

淘宝商品搜索API返回值全攻略:关键字搜索的数据价值挖掘

技术冰糖葫芦

API Explorer API 文档 API 性能测试

AI日报|苹果将在iOS 18中引入ChatGPT,联想或成AI PC最大受益者

可信AI进展

#人工智能

Media Encoder 2024 (ME2024中文版)v24.4.1最新激活版 Mac/win

Rose

LED显示屏抵御户外高温的策略

Dylan

科技 LED LED显示屏 户外LED显示屏 led显示屏厂家

Bookie存储架构源码剖析|得物技术

得物技术

MQ 源码剖析 pulsar java 企业号 2024年5月 PK 榜

iShowU Instant for Mac(强大的实时屏幕录像工具)直装版

Rose

打工人好用的大模型问答,还需要一款可靠的文档解析工具

合合技术团队

LLM 智能问答 文档解析

运营商系统快速上云的实践分享

鲸品堂

架构 系统 运营商 上云 企业号 5 月 PK 榜

ChatGPT指南:含有1000+ChatGPT资源

蓉蓉

ChatGPT GPT-4

TikTok标签使用技巧,从入门到精通全攻略

蓉蓉

TikTok tiktok直播

Premiere Pro 2024 (Pr2024下载安装) v24.4.1中文直装版 mac/win

Rose

Go 项目文件命名规范是什么?

江湖十年

掌握Postman,开启API测试新纪元!

霍格沃兹测试开发学社

Query 物理计划构建指南

KaiwuDB

#数据库

IntelliJ IDEA 2024 .1.2中文激活版 Java开发 mac编程软件下载

Rose

LLM 大模型学习必知必会系列(四):LLM训练理论篇以及Transformer结构模型详解

汀丶人工智能

Transformer 大模型训练

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