Создание фабрик с инициализацией тестовой среды

#ruby-on-rails #factory-bot

#ruby-on-rails #фабрика-бот

Вопрос:

Я использую Rspec with Factorybot и хочу создавать некоторые конкретные данные (и удалять их впоследствии) каждый раз перед запуском test среды Rails.

Например, все мои модели полагаются на наличие a Manufacturer , и я хочу, чтобы Manufacturer при запуске моей тестовой среды уже был создан a, и все мои фабрики были связаны с этим конкретным Manufacturer объектом (важно, чтобы его один и тот же объект для всех фабрик вызывал у моделей проверки для него)?

Это сработало, поместив его в initializers : if Rails.env.test? { create factories } но это не кажется хорошей идеей.

Каков наилучший / самый чистый способ сделать это?

Ответ №1:

Добавьте before(:each) блок внутри RSpec.configure блока в вашем rails_helper.rb или spec_helper.rb:

 RSpec.configure do |config|
  config.before :each do
    # create factories here
  end
end
  

Затем этот блок будет выполняться перед каждым примером.