ruby-on-rails – 工厂/夹具与简单的Model.create(…)?

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

我只是没有看到使用Factory Girl的任何优势,而不是简单地使用ActiveRecord方法创建一个新用户新用户..

谢谢

解决方法

拥有工厂并遵循测试数据构建模式将使您在前面做一些工作,但真的会节省您的时间和未来的工作.

假设您有一个汽车模型,并且该汽车拥有一个所有者,并且该所有者需要一个地址.此外,每个人都有其他领域.如果要遵循直接使用模型的方法,则必须在需要它们的每个步骤定义中创建这些对象(以及对应关系).有工厂?您只需定义一次.

一旦您将工厂定义在一个具有相应结构的地方,您所要做的就是要求汽车和工厂将采用其他型号的所有依赖项.那不是很酷吗?最后,您希望专注于测试.

它真的很酷的是你可以覆盖特定的属性,所以你可能有这样的例子,如果你想覆盖属性速度:

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

从我的谦逊的角度来看,我喜欢Factory Girl,因为它使我的测试代码易于保持并且非常容易阅读.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...