【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

为 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:411738
用户头像

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

关注

评论

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

架构师训练营 11 周作业

郎哲158

话题讨论 | 2020年你有什么推荐的书

soolaugust

话题讨论

架构师训练营第 1 期第 11 周作业

owl

极客大学架构师训练营

公安情报研判管控分析平台建设解决方案

t13823115967

智慧公安情报研判系统开发 智慧公安 情报研判管控分析平台

第七周总结

小兵

话题讨论 | 未来十年,你认为哪门语言将要脱颖而出

soolaugust

话题讨论

Spring 源码学习 08:register 注册配置类

程序员小航

Java spring 源码 源码阅读

探秘密码学:深入了解对称加密与密钥协商技术

京东科技开发者

网络安全 密码学

KMP —— 字符串分析算法

三钻

算法 大前端 KMP

话题讨论 | 深入浅出Linux内存管理,图解物理内存和虚拟内存

程序员柠檬

话题讨论

基于区块链技术落地应用开发-食品溯源

13828808769

什么是工作流?工作流有什么作用?怎样配置工作流程?

Marilyn

敏捷开发 工作流

手撸一个在线css三角形生成器

徐小夕

CSS css3 大前端 CSS小技巧

第十一周 安全稳定总结

蓝黑

极客大学架构师训练营

低成本快速上链 智臻链开放联盟网络正式对外开放

京东科技开发者

区块链 京东

话题讨论 | 程序员摸鱼的时候都喜欢干些什么

soolaugust

话题讨论

话题讨论 | 作为开发你是如何阅读源码的?

程序员小航

话题讨论

花火交易所APP软件系统开发(现成)

系统开发

源码深度解析 Handler 机制及应用

vivo互联网技术

android 客户端开发

架构师训练营第 1 期第 11 周总结

owl

极客大学架构师训练营

第十一周 安全稳定作业

蓝黑

极客大学架构师训练营

智慧公安情报指挥合成作战管控平台开发

t13823115967

智慧公安情报研判系统开发 智慧公安 合成作战管控平台

突破容量极限:TiDB 的海量数据“无感扩容”秘籍

京东科技开发者

分布式数据库 #TiDB

线程上下文切换,这些是你需要掌握的

田维常

系统上下文

阿里云Lindorm与Intel、OSIsoft共建IT & OT超融合工业数据云

许力

数据库 大数据 IoT 工业互联网 工业物联网

CSS flex 排版与动画 — 重学 CSS

三钻

CSS 大前端 排版 Flex

话题讨论 | go、php 、java、python、cpp谁才能成为后端的主流

sinsy

Java c++ php 话题讨论 Go 语言

App自动化《元素定位方式、元素操作、混合应用、分层设计、代码方式执行Pytest 命令》

清菡软件测试

App

架构师训练营第 11 周学习笔记

郎哲158

我是程序员,我用这种方式铭记历史

kokohuang

Hexo GitHub Pages python 爬虫 中国历史 铭记历史

Seata是什么?一文了解其实现原理

vivo互联网技术

分布式 分布式事务 分布式架构

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