まだテスト実行環境未導入のrailsプロジェクトにRSpecを導入する流れをメモ。

ほぼ必ずといっていいほどfactory_botも使うのでそちらも合わせて入れておきたい。

データベースを使わない、というプロジェクトはfactory_botなしでもいい。(実際ある!)

まずはGemfileにrspec-railsfactory_bot_railsを追記。

factory_bot_railsはrails用のfactory_botのようだ。

group :test do

  # 〜 中略

  gem 'rspec-rails'
  gem 'factory_bot_rails'
end

bundle installbin/rails g rspec:installを実行。

これで以下のようにrspecの設定ファイルが展開される。

$ bundle install
$ bin/rails g rspec:install
      create  .rspec
      create  spec
      create  spec/spec_helper.rb
      create  spec/rails_helper.rb

テスト用のデータベースに対してdb:migrateを実行。

$ RAILS_ENV=test bin/rails db:migrate

まだひとつもテストはないけれど、この時点で動作確認。

bundle exec rspecを実行して以下のように表示されれば、テストコードを動かす準備が完了している。

$ bundle exec rspec
No examples found.


Finished in 0.00062 seconds (files took 0.19644 seconds to load)
0 examples, 0 failures

factory_botを使うときは何もしないとFactoryBot.create(:sample)みたいに書くことになるけど毎回、FactoryBotと書くのは面倒なので省略できるように以下を追加しておく。

この辺はお好みでどうぞ。

RSpec.configure do |config|
  # 省略

  config.include FactoryBot::Syntax::Methods # 追加!
end

この記事の環境情報

  • rails 7.0.4
  • rspec 3.11.0
  • factory_bot 6.2.1
  • 月曜の朝