使用FactoryGirl设置受保护的属性

bri*_*ran 8 ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 attr-protected factory-bot

FactoryGirl不会设置我的受保护属性user.confirmed.这里的最佳做法是什么?

Factory.define :user do |f|
  f.name "Tim"          # attr_accessible -- this works
  f.confirmed true      # attr_protected -- doesn't work
end 
Run Code Online (Sandbox Code Playgroud)

我可以@user.confirmed = true在使用我的工厂之后做一个,但是在很多测试中都有很多重复.

bri*_*ran 10

使用after_create钩子工作:

Factory.define :user do |f|
  f.name "Tim"
  f.after_create do |user|
    user.confirmed = true
    user.save
  end
end 
Run Code Online (Sandbox Code Playgroud)

  • 很棒的发现.更近期的工厂女孩​​版本将语法改为`after(:create)`.参见[入门指南](https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md) (2认同)