加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:13:48 所属栏目:百科 来源:网络整理
导读:当你可以在测试中使用ActiveRecord来创建数据库条目时,工厂/固定装置的目的是什么(我知道工厂就像固定装置一样,但更清晰一点)?即News.create(…) 我只是没有看到使用Factory Girl的任何优势,而不是简单地使用ActiveRecord方法创建一个新用户说新用户.. 谢谢
当你可以在测试中使用ActiveRecord来创建数据库条目时,工厂/固定装置的目的是什么(我知道工厂就像固定装置一样,但更清晰一点)?即News.create(…)

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

谢谢

解决方法

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

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

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读