Обновляем factory_girl_rails до factory_bot_rails

Чтобы обновить библиотеку factory_girl_rails делаем следующее:

Gemfile
gem 'factory_girl_rails' # убираем
gem 'factory_bot_rails'  # добавляем
Делаем bundle, чтобы наш Gemfile.lock обновился, а новая библиотека скачалась.

Следующим шагом мы по всему проекту должны поменять имя класса:
FactoryGirl # вот этот класс
FactoryBot # меняем на вот этот
Я сделал это обычной заменой текста по всему проекту в текстовом редакторе.

Далее нам нужно пофиксить синтаксис старых 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" } # стало
Наверх