写点什么

为 Java 和 Flex 编写 Mock 对象

  • 2009-07-11
  • 本文字数:1137 字

    阅读完需:约 4 分钟

近日 Mockito 框架发布了 1.8 rc2 版,InfoQ 有幸采访到了项目创建者 Szczepan Faber 以了解该版本的一些细节信息。

说明:尽管 1.8 最终版尚未发布,但 Szczepan 承诺最终版将与 1.8 RC2 差不多,随时都能发布。

InfoQ:1.8 版中有哪些令人期待的特性呢?

相对于之前的版本来说,1.8 版变化不大,但其中包含的一些便捷特性可以简化开发者的日常工作,其中就有一个 API 可以捕获方法参数以执行进一步的断言,这样我们就可以更高效地对方法参数进行验证了。 我们决定为桩 API 增加别名以与编写单元测试时所采取的行为驱动开发风格进行无缝集成。这意味着我们可以通过新的 given().willReturn() 桩别名轻松读取测试中的 //given //when //then 注释。

该版本的 Mockito 最终还添加了 Partial Mock 特性。就 Partial Mock 是否为一个必要的特性我们争论了很久,最终找到了其实际价值。大家可以通过 http://code.google.com/p/mockito/wiki/ReleaseNotes 查看完整的特性列表。

InfoQ:1.8 之后的路线图如何?

起初我觉得做到 Mockito 1.0 也就算完事了,然而新的想法和改进像潮水一样不断涌现出来,我们就继续投入到了新版本的开发中。这里不得不提的就是那些通过 mockito邮件列表提供反馈和建议的广大用户,衷心的感谢你们。想给某新特性起个名字不是件容易的事,当然了,我们还是会尽力保持 API 的简单性,同时还会继续根据用户反馈进行改进以保持 TDD 循环的快速性与平滑性。

InfoQ:最近你们创建了一个名为 Mockito for Flex 的新项目,这是 Mockito 的官方子项目么?

哦,不是,因为它采取的是完全不同的语言。我想你可以称其为官方拍档,因为 Krzysztof Karczmarczyk 和我一起实现了 mockito-flex。我想 Krzysztof 已经对 mockito-flex 主页上的信息进行了更新。

InfoQ:可否向我们介绍一些好资源以便大家能够快速上手 Mockito,同时还能充分利用 Mockito 提供的这么多特性?

关于 Mock 对象的任何介绍都将有助于概念的掌握。Brett Schuchert 编写了一个 Mockito教程。大家不仅可以从Javadocs 中了解到具体的特性介绍,还能找到所有的文档,包括代码示例。之所以将所有文档都放在Javadocs 中是因为我们想让文档与 mockito.org 网站上的介绍保持一致,同时开发者还能直接从 IDE 中查看所有文档,哪怕是在离线状态下,这很棒。 Mockito 类的那些 Javadocs 是个不错的起始点,大家可以通过这些文档来了解 Mockito 的各种特性。

当前 mockito-flex 的版本是 1.0,提供了如下功能

  • 支持对方法调用和属性访问的验证
  • 支持方法调用和属性访问桩
  • 支持基本的匹配器以及创建新匹配器的扩展 API
  • 集成了 flex unit
  • 基于 asmock-0.3(用于字节码生成和底层的执行处理)

最后,如果你还是个 Python 开发者,那么你可能会对 mockito-python 感兴趣。

查看英文原文: Mocking for Java and Flex

2009-07-11 22:411799
用户头像

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

关注

评论

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

打破思维定式(十)

Changing Lin

聊聊Spring的XML Schema扩展机制的使用方式

Hex

spring

Spark为什么会流行

大数据技术指南

大数据 5月日更

把Redis当作队列来用,真的合适吗?

Kaito

数据库 redis 队列

ceph-csi源码分析(8)-cephfs driver分析

良凯尔

Kubernetes 源码分析 Ceph CSI

数据挖掘从入门到放弃(二):决策树

数据社

机器学习 5月日更

网络攻防学习笔记 Day15

穿过生命散发芬芳

5月日更 网络攻防

ceph-csi源码分析(7)-rbd driver-IdentityServer分析

良凯尔

Kubernetes 源码分析 Ceph CSI

花一周整理!Python全系列学习资料,全是干货

Python研究者

服务调用链相关基础知识

luojiahu

调用链

Python-XPath

若尘

Python编程 5月日更

Android设备实时音视频传输有效方案

小驰笔记

android 音视频 引航计划

20个不良用户体验

老猿Python

程序员 用户体验 程序开发

区块链—重构新商业体系和全新商业生态环境

CECBC

企业数字化转型分为三个阶段

石云升

数字化 5月日更

APP透露的焦虑

wgc

杂谈

数据科学指南#基础篇 Bokeh入门

Lev

Python 学习 数据分析 数据科学

iOS 面试策略之系统框架-UIScrollView及其子类

iOSer

ios 面试 UIScrollView UICollectionView

全文检索的介绍

五分钟学大数据

大数据 5月日更

腾讯iOS开发要达到咋样的水准?

一意孤行的程序员

ios 程序员 腾讯 面试 ios开发

深入Linux C/C++ Timer定时器的实现核心原理

Linux服务器开发

Linux 后端 网络编程 定时器 Linux服务器开发

量化网格交易策略系统,马丁倍投策略软件源码

全国大学生物联网设计竞赛(华为杯)巡回技术讲座“八校联动”,HarmonyOS与校园开发者面对面

Geek_283163

鸿蒙

全国大学生物联网设计竞赛(华为杯)巡回技术讲座“八校联动”,HarmonyOS与校园开发者面对面

科技汇

Nginx通过split_client实现客户端分流

运维研习社

nginx 灰度发布 5月日更 分流

通过实践带你揭开TCP中CLOSE_WAIT和TIME_WAIT的神秘面纱

linux大本营

c++ Linux TCP 网络协议 epoll

消息队列系统架构设计

王硕

架构训练营

k8s POD hosts 文件怎么与主机保持同步那?

Geek_f24c45

Docker Kubernetes

[Netty]- Reactor实现

topsion

reactor Netty io nio

工业互联网产业数字化,区块链如何协同发力?

CECBC

用Python找出100以内的质数 - DAY6

Qien Z.

5月日更 ptyhon 找质数 质数

为Java和Flex编写Mock对象_Java_Craig Wickesser_InfoQ精选文章