#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
Затем этот блок будет выполняться перед каждым примером.