写点什么

ObjectMother——一款被人遗忘的测试工具

  • 2007-08-08
  • 本文字数:718 字

    阅读完需:约 2 分钟

在世界上最早使用 TDD 编写测试的技术中,有一种技术并不是使用 Mock 和 Stub,而是使用实际的业务对象。它通过创建一系列的工厂来创建和配置业务对象,并执行其中的方法,这些被初始化后的对象就可以为测试所用。这种模式的名字叫做 ObjectMother .

这项技术从来没有像 Mock 和 Stub 一样引起众多的关注,但它也从未淡出过开发人员的视野。Mocking/Stubbing 本身也有种种缺陷, 一方面,它们对依赖关系造成了破坏,就会使开发人员觉得用起来很困难,另一方面,它们实际上也是代码的冗余,所以就要在维护真实业务对象的同时,还要并行 地维护 Mocks 和 Stubs,这也就让它们显得尤为脆弱。所以碰到这个时候,开发者就会常常把 ObjectMother 找出来用。

JB Rainsberger 在为 XP Day Toronto 2007 准备一个 Rails 应用时,就用了 ObjectMother 来做测试。Maarten Winkels 认为在测试数据访问层的时候,ObjectMother 是一种可行的方案。Vikas Kerni 也因为使用Mock 要付出太多额外代价而把它们甩开换用了 ObjectMother

也有很多人认为 ObjectMother 不是一个好想法,甚或因为它的误用而认为它是一个反模式。J. Richardson 在 C2 的有关 ObjectMother 的 Wiki 页面上留言说:

实际上它应该被称作是反模式。我所亲见的那些鼓吹这种方式的人,没过几个月就自己都觉得羞愧。这种模式和那种广为人知的“把所有东西都放到一起”的模式有点相似,而且实际被创建出来的东西也是很不明显的。也许用 Builder 模式会更加有用……

但总的来说,ObjectMother 也是测试工具箱中的一款工具。你的经验是什么呢?你觉得它有用吗?如果有用的话,那它适合在什么环境中使用?如果你觉得它危险而邪恶,理由又是什么呢?查看英文原文: ObjectMother - a Forgotten Testing Tool

2007-08-08 22:261176
用户头像

发布了 197 篇内容, 共 63.5 次阅读, 收获喜欢 21 次。

关注

评论

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

如何调用电商API接口获取相关商品的推荐列表?

技术冰糖葫芦

API API 文档

拒绝连锡!3种偷锡焊盘轻松拿捏

华秋电子

PCBA

鸿蒙学堂·创新实训营再度启航深圳,中国移动、国家电网等40余家企业参与

最新动态

北京同仁堂签署鸿蒙生态合作协议,加速推进鸿蒙原生应用开发

最新动态

一文弄懂竞品分析 - 竞品分析是什么| 从哪些方面分析 | 竞品分析报告怎么写?

彭宏豪95

效率工具 产品经理 在线白板 竞品分析 SWOT

几种常见的排序算法总结

不在线第一只蜗牛

算法 排序算法 教程分享

低代码平台提升软件开发效率

互联网工科生

软件开发 低代码 JNPF

CAKE OF FORTUNE(蛋糕矿工)BSC链系统开发

l8l259l3365

只需3分钟!组织架构图如何简单快速制作

职场工具箱

组织架构图

软件测试/人工智能|一文教你如何配置自己的AutoGPT

霍格沃兹测试开发学社

【网易云商】构建高效 SaaS 系统的技术要点与最佳实践

网易云信

SaaS 平台

喜讯!云起无垠成为国家信息安全漏洞库(CNNVD)技术支撑单位

云起无垠

uni-app 打包ios上架app store流程

E往无前 | 海量数据ES 扩展难?腾讯云大数据ES 扩展百万级分片也“So Easy~”

腾讯云大数据

ES

跃见书单 | 一文带你读懂《人工智能简史》

码上跃见

AIGC #人工智能

登陆 Azure、发布新版本……Zilliz 昨夜今晨发生了什么?

Zilliz

azure Milvus Zilliz zillizcloud

软件测试/人工智能|教你如何使用ChatGPT的API

霍格沃兹测试开发学社

基于低代码平台搭建应用程序

树上有只程序猿

软件开发 低代码 JNPF

如何使用电商平台API接口?

技术冰糖葫芦

API API Gateway API 文档

保姆级连接FusionInsight MRS kerberos Hive

数新网络官方账号

Java hive 华为云 Dbeaver

C/C++ 开发SCM服务管理组件

不在线第一只蜗牛

c 开发语言 c++、

IDC最新报告,增速减缓+AI增势,阿里云视频云中国市场第一

阿里云CloudImagine

云计算 视频云

软件测试/人工智能|AutoGPT原理与架构介绍

霍格沃兹测试开发学社

数字化供应链助力电子产业高质量发展,华秋2023电子设计与制造技术研讨会成功举办!

华秋电子

PCB设计

Presto+Alluxio数据平台实战

数新网络官方账号

大数据

ObjectMother——一款被人遗忘的测试工具_研发效能_Amr Elssamadisy_InfoQ精选文章