Обновляем factory_girl_rails до factory_bot_rails
Чтобы обновить библиотеку factory_girl_rails делаем следующее:
Gemfile
Gemfile
gem 'factory_girl_rails' # убираем gem 'factory_bot_rails' # добавляем
Делаем bundle, чтобы наш Gemfile.lock обновился, а новая библиотека скачалась.
Следующим шагом мы по всему проекту должны поменять имя класса:
Следующим шагом мы по всему проекту должны поменять имя класса:
FactoryGirl # вот этот класс FactoryBot # меняем на вот этот
Я сделал это обычной заменой текста по всему проекту в текстовом редакторе.
Далее нам нужно пофиксить синтаксис старых factories. Вручную делать это довольно долго, поэтому воспользуемся библиотекой rubocop и функцией автокоррекции.
Если rubocop не установлен:
Далее нам нужно пофиксить синтаксис старых factories. Вручную делать это довольно долго, поэтому воспользуемся библиотекой rubocop и функцией автокоррекции.
Если rubocop не установлен:
gem install rubocop-rails gem install rubocop-rspec
Теперь предоставим работу по автокоррекции синтаксиса рубокопу:
rubocop \ --require rubocop-rspec \ --only FactoryBot/AttributeDefinedStatically \ --auto-correct
Таким образом rubocop поправит основные проблемы связанные с обновлением синтаксиса библиотеки FactoryBot.
В моем случае были подобные правки:
spec/factories/post.rb
title "title" # было title { "title" } # стало