【发布时间】:2015-04-06 16:44:37
【问题描述】:
如果我只需要一个基本模型,直接创建模型与使用工厂女孩创建模型有什么区别吗?
I.E.
User.new(..all the correct params)
对
Factory.create :user
我的终极问题是:
当测试控制器直接创建模型是否会降低测试的可靠性?
【问题讨论】:
如果我只需要一个基本模型,直接创建模型与使用工厂女孩创建模型有什么区别吗?
I.E.
User.new(..all the correct params)
对
Factory.create :user
我的终极问题是:
当测试控制器直接创建模型是否会降低测试的可靠性?
【问题讨论】:
没有太大区别。您可以直接创建一个新对象。但是工厂女孩可以处理关联,您通常会在其中放置一些默认数据,这样对您来说更容易。
重用代码也更容易。 否则,无论何时创建用户,都必须设置这些参数。
这就是为什么使用工厂女孩是一种好习惯
【讨论】:
通过 Factory Girl 创建一个新对象,使您的代码枯竭,从而使测试更加可靠。例如,如果您稍后决定向 users 表添加一个新属性,那么您只有 1 个位置来更新该属性。如果您要使用 User.new(....),则必须去寻找测试文件中的所有内容以更新更改。
【讨论】: