Как люди говорили в комментариях, статические атрибуты, такие как first_name 'John'
, устарели на v4 (отметьте это руководство ), а затем удалили на v5, альтернатива - сделать их похожими на динамические атрибуты: first_name { 'John' }
.
Они даже включили Rubocop, чтобы помочь вам исправить все ваши фабрики:
rubocop \
--require rubocop-rspec \
--only FactoryBot/AttributeDefinedStatically \
--auto-correct
Я рекомендую выполнить миграцию медленно, но верно, перейдите с FactoryGirl
на FactoryBot
, используя аналогичную версию, запустите свои спецификации, проверьте все предупреждения об устаревании, запустите настраиваемый Rubocop для автоматического исправления ваших фабрик, затем только мигрируйте основные версии после прочтения changelog .
Я согласен, что сообщение могло бы быть немного лучше, обычно основная цель устаревания состоит в том, чтобы упростить код и уменьшить логику ветвления, поэтому, как только предупреждение об устаревании появилось достаточно времени, и пришло время удалить его, любое обнаружение старое использование было бы лишним кодом, который должен был быть удален, общий результат в проектах с открытым исходным кодом.
Рад, что вы нашли выход.