AICon 深圳站 Keynote 嘉宾官宣!共探AI价值转化的实践路径 了解详情
写点什么

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

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

关注

评论

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

【 HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解

GeorgeGcs

HarmonyOS NEXT

利用 Amazon Bedrock 构建高效 SEO 内容生成系统:从流量挖掘到智能创作

亚马逊云科技 (Amazon Web Services)

VKProxy新增速率限制功能

八苦-瞿昙

二级等保

等保测评

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

GeorgeGcs

HarmonyOS

【HarmonyOS 5】鸿蒙应用px,vp,fp概念详解

GeorgeGcs

HarmonyOS NEXT

黑龙江腾讯云:科技赋能,助力龙江新发展

等保测评

《HarmonyOSNext教育应用性能飞跃:ArkTS长列表优化5大实战指南》

Turing_010

ArkUI-X应用工程结构说明

龙儿筝

时序数据库 TDengine 助力华锐 D5 平台实现“三连降”:查询快了,机器少了,成本也低了

TDengine

数据库 tdengine 时序数据库

鸿蒙运动项目开发:封装超级好用的 RCP 网络库(下)—— 实战应用

王二蛋和他的张大花

AI进行时,AlphaGPT引领法律服务新时代

科技汇

项目管理利器:甘特图的全面解析与应用指南

敏捷开发

甘特图 #项目管理

智慧园区系统(源码+文档+讲解+演示)

深圳亥时科技

【HarmonyOS 5】鸿蒙CodeGenie AI辅助编程工具详解

GeorgeGcs

HarmonyOS

spss是什么软件,SPSS主要用来做什么的 ? SPSS数据分析软件介绍 spss个人版和企业版区别

阿拉灯神丁

mac数据分析统计软件 spss数据统计 IBM SPSS Statistics中文 spss统计软件

大模型 RAG 进阶实战营 毕业总结

gigifrog

合合信息发布业内首个AI Agent跨平台云资源智能管理终端

合合技术团队

人工智能 大数据 算法

AI教育APP的开发

北京木奇移动技术有限公司

AI教育 软件外包公司 AI英语学习

别划走!选择无代码平台的10个理由!

积木链小链

数字化转型 无代码 无代码平台

如何测试DNS解析状态是否正常?

国科云

跨境卖家必看!2025年1688API新功能解锁全球供应链

tbapi

1688商品详情接口 1688商品列表接口 1688API 1688寻源通API

时序数据库 TDengine × Power BI:高频数据也能秒级响应

TDengine

数据库 tdengine 时序数据库

大数据-17 Flume 分布式日志收集 实时采集引擎 Source Channel Sink 串行复制负载均衡

武子康

大数据 hadoop flume

MySQL派生表查询大数据量无结果问题分析与解决

GreatSQL

从API测试看企业系统性落地AI的鸿沟

思码逸研发效能

研发效能 智能测试 API 测试 研发效能管理 思码逸

ArkUI-X平台桥接Bridge说明

龙儿筝

时序数据库 TDengine 通过麒麟全系列兼容性认证,稳了!

TDengine

数据库 tdengine 时序数据库

企业放弃TeamViewer转投贝锐向日葵企业版:性能价格向日葵均有优势

科技热闻

Golang基础笔记二之字符串及其操作

Hunter熊

golang 字符串 字符串处理

时序数据库 TDengine x Kepware:解决你最头疼的“设备接入”问题

TDengine

数据库 tdengine 时序数据库

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