如何避免持久化Factory Girl对象

时间:2011-07-21 11:43:28

标签: rspec persistence factory-bot

1 个答案:

答案 0 :(得分:1)

=创建数组["banned", "jobseeker"]并将其设置为@user.roles

# should allow multiple roles
@user.roles = ["banned", "jobseeker"]

<< "foo"附加到现有数组(即修改现有数组!):

# should reject undefined roles
@user.roles << "foo"

FactoryGirl 重用相同的用户对象,但它重用了相同的roles属性。只需更改每次在工厂中动态创建的roles数组:

Factory.define :user do |f|
  ...
  f.roles       { ['jobseeker'] }
end
Factory.define :employer do |f|
  ...
  f.roles       { ['employer'] }
end

这个, OR 避免使用<<或任何更改现有数组/变量的方法,而是使用使用新对象的=。 e.g。

# should reject undefined roles
@user.roles = [ "foo" ]