首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >共享背景:好还是坏?

共享背景:好还是坏?
EN

Software Engineering用户
提问于 2013-05-12 00:14:38
回答 1查看 669关注 0票数 4

RSpec允许用户跨测试/示例进行共享上下文,这将大大减少应用程序中的代码行数。

另一方面,与测试之间共享代码库的问题有关,我之所以使用工厂而不是工装,原因之一是我不希望测试依赖于存储在测试之外的代码。赖安·贝茨更好地解释了这一点:

测试和夹具之间存在很大的依赖关系,我们可以通过更改夹具来导致测试失败。这种强大的外部依赖不是一个好主意,它会使测试变得脆弱。

这里的最佳实践是在测试之间共享上下文,还是为每个测试创建一个独立的上下文?

EN

回答 1

Software Engineering用户

发布于 2013-05-12 10:02:54

工厂本身被认为是无状态的,因为从调用者的角度来看,工厂每次都做相同的事情。因此,从逻辑上讲,共享工厂的唯一方法是,如果您以某种方式违反了该合同,返回的实例在某种程度上受到了以前对工厂的调用的影响。

换句话说,工厂可以并且通常执行创建实例的优化,但是调用方完全不会受到这种情况的影响。因此,在简单的情况下,一个工厂只是创建一个实例并返回它,它不会给您带来问题,您必须通过共享工厂来解决这些问题。

然而,虽然一个工厂可以通过共享实例来优化这一点,但是可以理解的是,共享的对象(或表面上)是无状态的。如果他们不是,如果你是幸运的,你会立即看到这些错误,尽管如果你不是幸运的话,那么你在你的程序中会收到一系列的错误,直到很多个月后它们才会出现。这是一个反模式,如果我可以补充的话,一个特别令人讨厌的。

所以,如果你想使用一个工厂,只需确保它符合模式。如果您没有处理无状态对象,就不要采取任何快捷方式,在调用工厂来创建实例时实例化每个对象,这样就可以了。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/197804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档