У меня есть некоторые модели, использующие хук after_initialize
, например, для установки загрузки атрибутов по умолчанию и других вещей:
after_initialize do |some_model|
initializer(some_model)
end
def initializer(some_model)
#... loads of pre-processing
end
Все это отлично работает в разработке и производстве, однако в моем FactoryBot иТесты rspec этот хук не работает.У меня есть фабрика, которая выглядит следующим образом:
FactoryBot.define do
factory :some_model do
some_number { 1 }
is_it_something { false }
account { create(:user).accounts.first }
end
end
Но мои тесты выглядят так:
some_model = create(:some_model)
some_model.initializer(some_model)
Проблема в том, что мне приходится звонить initializer
отдельно послесоздание модели FactoryBot.Это вызывает всевозможные проблемы, потому что create()
запускает проверки создания, и они терпят неудачу, потому что инициализатор не запускается.
Как я могу заставить FactoryBot запускать after_initialize
при создании нового экземпляра?
Спасибо.
(Возможно, здесь у меня неправильная терминология, поэтому, пожалуйста, поправьте меня, если у меня есть.)