gpt4 book ai didi

ruby-on-rails - 工厂/固定设备与简单Model.create(...)?

转载 作者:行者123 更新时间:2023-12-04 07:26:34 26 4
gpt4 key购买 nike

当您可以简单地在测试中使用ActiveRecord创建数据库条目时,工厂/固定装置的目的是什么(我知道工厂的行为就像固定装置一样,但是更清楚一点)?即News.create(...)

我只是看不到使用Factory Girl而不是简单地使用ActiveRecord方法创建一个新用户(例如,创建一个新用户)的任何优势。

谢谢

最佳答案

拥有工厂并遵循测试数据构建模式可以使您提前做一些工作,但实际上可以节省您的时间和以后的工作。

假设您有一个汽车模型,那个汽车有一个所有者,那个所有者需要一个地址。另外,每个都有其他字段。如果要遵循直接使用模型的方法,则必须在每个需要它们的步骤定义中创建那些对象(以及对应的关系)。有工厂吗?您只需一次就可以对其进行定义。

在使用对应结构在单个位置定义了Factory后,您所要做的就是索要Car,并且Factory将把与其他模型相关的所有依赖项都带入car。那不是很酷吗?最后,您现在想专注于测试

同样很酷的是,您可以覆盖特定的属性,因此,如果要覆盖属性速度,则可能会有类似以下内容:

Given /^I have a car running^/
Factory :car, speed => 100
end

从我的卑鄙角度来看,我喜欢Factory Girl,因为它使我的测试代码易于维护并且非常易于阅读。

关于ruby-on-rails - 工厂/固定设备与简单Model.create(...)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10155156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com