写点什么

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

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

关注

评论

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

Apache Doris 2.0.12 版本正式发布

SelectDB

大数据 数据仓库 数据分析 实时数仓 Doris

观测云:开启现代化企业监控的新篇章

可观测技术

监控

深入理解Spring AOP中的@EnableAspectJAutoProxy

不在线第一只蜗牛

OpenStack基本介绍

天翼云开发者社区

云计算 OpenStack

2024年6月,Altair被Gartner魔力象限评为数据科学与机器学习平台指引者

Altair RapidMiner

人工智能 机器学习 AI 数据分析 数据科学

IoTDB Committer+Ratis PMC Member:“两全其美”的秘诀是?

Apache IoTDB

腾讯云参编信通院DataOps2.0,助力企业高效数据开发与管理

腾讯云大数据

wedata

如何使用 Ordinals API 在 Bitcoin 网络上开发 Web3 应用

NFT Research

NFT NFTScan Ordinals

Linux 下的性能监控与分析技巧

秃头小帅oi

多模态GPT-V出世!36种场景分析ChatGPT Vision能力,LMM将全面替代语言大模型?

京东科技开发者

Parallels Toolbox for mac(pd工具箱) 6.0.2激活版

你的猪会飞吗

mac破解软件下载

大模型时代,程序员当下如何应对 AI 的挑战

京东科技开发者

谈谈iOS中的原生物理引擎——UIDynamic的应用

珲少

中高级前端必修技能哪些,看下你都修了没?

伤感汤姆布利柏

网络流量的智能调度者

通明湖

负载均衡

mac压缩解压工具:Keka for Mac 中文版下载

你的猪会飞吗

Mac软件下载站 mac破解软件下载

鸿蒙技术之WebSocket连接详解

彭康佳

android 鸿蒙 websocket

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