创建记录后更改工厂的属性

Are*_*rel 4 rspec ruby-on-rails factory-bot

使用 FactoryBot,我在规范中创建管理工厂时遇到问题,因为每个用户都在回调中分配了默认的用户角色before_create。这意味着当回调发生时,我分配给工厂的任何角色都将更改为用户。

我真正想做的是这样的:

在我的规格里面

admin = FactoryBot.create(:user)
admin.role = 'admin'
Run Code Online (Sandbox Code Playgroud)

第二行,admin.role = 'admin'不做任何事情。有任何想法吗?

我也愿意接受更好的方法来做到这一点。

cor*_*ard 5

可能有一种方法可以将值重新分配给 FactoryBot(以前称为 FactoryGirl)实例,但 RSpec 否定了这种需要:

describe User do
  let(:user) { FactoryBot.create(:user) }

  context 'when admin' do
    let(:user) { FactoryBot.create(:user, admin: true) }

    # ...
  end
end
Run Code Online (Sandbox Code Playgroud)