Я считаю, что это хороший случай для использования черт FactoryBot.
Может быть только одна именованная фабрика, но черты допускают изменения для этой именованной фабрики.
Рассмотрим что-то вроде этого:
FactoryBot.define do
factory :user do
trait :bob do
display_name { 'Bob' }
age { 30 }
end
trait :jimmy do
display_name { 'Jimmy' }
age { 26 }
end
end
end
И затем, когда вам нужен Джимми, вы можете вызвать фабрику пользователей следующим образом:
FactoryBot.create :user, :jimmy
Или, если вам нужен Боб, назовите его так:
FactoryBot.create :user, :bob
Надеюсь, это поможет.