Ruby 2.5和FactoryBot引发了TypeError

时间:2018-03-09 16:19:42

标签: ruby factory-bot

我正在将Rails(5.1)应用程序从使用Ruby 2.3.3升级到Ruby 2.5.0

我有以下FactoryBot(4.8.2)工厂

FactoryBot.define do
  factory :training do
    transient do
      assigned_instructor { create(:user) }
    end

    description 'training description'
    instructor  { assigned_instructor }
  end
end

用户工厂看起来像

FactoryBot.define do
  factory :user do
    sequence(:full_name)    { |n| "John Doe#{n}" }
    sequence(:email)        { |n| "john.doe#{n}@example.com" }
    role  { create(:role, activities: [create(:activity, name: 'activity')]) }
  end
end

当我运行任何创建training的规范时,我会

Failure/Error: assigned_instructor { create(:user) }

TypeError:
coerce must return [x, y]

如果我创建用户并将其传递给工厂,则不会发生这种情况。

create(:training, assigned_instructor: create(:user))

我应该注意Ruby 2.5中的任何变化吗?

仅供参考,所有创建用户的规范都按预期工作。

0 个答案:

没有答案