速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

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

关注

评论

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

阿里云云效研发协同服务相关协议条款 |云效

阿里云云效

云计算 阿里云 运维 研发 研发协同

应用要在AppStore上线,需要满足什么条件?

InfoQ IT百科

读书破万“卷”:国民阅读洞察2022

易观分析

阅读 文学

App和小程序有哪些区别?

InfoQ IT百科

索信达获金融街资本1亿元投资

索信达控股

「查缺补漏」,DDD 核心概念梳理

悟空聊架构

DDD 领域驱动 4月日更 悟空聊架构 4月月更

数字化时代,SaaS软件如何成为国产化替代的轻骑兵?

小炮

架构实战毕业总结

王大胖

Clubhouse为什么不火了?

InfoQ IT百科

首届船海数据智能应用创新大赛赛事公告

科技热闻

区块链+数字资产,未来财富的新起点

CECBC

外包学生管理系统架构方案

Trent

架构文档 架构训练营

目前主流的手机SOC芯片都有哪些?

InfoQ IT百科

手机 SOC 芯片

Android ANR分析(trace文件的产生流程)

北洋

4月月更

在安卓应用市场上架需要注意什么?

InfoQ IT百科

APP评测的网站有哪些?

InfoQ IT百科

如何选择合适的 Neo4j 版本(2022)

亮小猪

neo4j 图数据库 图算法

SWOOLE高性能内存数据库的使用和配置教程

CRMEB

返璞归真,多方安全计算要回归到“安全”的本源考虑

易观分析

多方安全计算

CRM系统可以帮助改善客户体验吗?

低代码小观

CRM 客户关系管理 企业管理系统 CRM系统 客户关系管理系统

一文读懂PlatoFarm新经济模型以及生态进展

小哈区块

解锁OpenHarmony技术日!年度盛会,即将揭幕!

OpenHarmony开发者

OpenHarmony 技术日

关于Signal Catcher线程中对线程的理解

北洋

4月月更

数字化时代,企业运维面临现状及挑战分析解读

云智慧AIOps社区

大数据 运维 数字化时代 大数据运维

智慧公安二维码定位报警系统开发 移动警务app

a13823115807

万有导航:简洁实用的综合导航网站

小炮

B站可以称为中国的YouTube吗?

InfoQ IT百科

百度云盘好用还是阿里云盘好用?

InfoQ IT百科

终极套娃 2.0|云原生 PaaS 平台的可观测性实践分享

尔达Erda

微服务 云原生 可观测性 经验分享 实践

一文读懂PlatoFarm新经济模型以及生态进展

西柚子

即时通讯系统搭建IM聊天社交软件开发

a13823115807

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