【RSpec】初期設定について

はじめに

 RailsRSpecを導入するときに、初期設定を忘れがちなので備忘録として残しておきます。

gemの追加(rspec)

Gemfile

gem 'rspec-rails'
$ bundle install

これでgemを入れることができました。

設定ファイルを作成するコマンド

$ rails g rspec:install

コマンドを実行すると、下記のファイルが作成されます。

create .rspec
create spec/spec_helper.rb   #RSpecの全体的な設定を書く
create spec/rails_helper.rb  #Rails特有の設定を書く

.rspecの設定

# 出力結果を色分け
--color
# rails_helperの読み込み
--require rails_helper
# 出力結果をドキュメント風に見やすくする
--format documentation

デフォルトだと--require spec_helperとなっているが、RailsRSpecを使う場合は、--require rails_helperを使うのがベターです。

理由としては、後述するrails_helper.rbで既にrequire spec_helperを行なっているためです。

テストデータ生成用のgem(factory_bot)

Gemfile

$ gem 'factory_bot_rails'
$ bundle install

facotory_botのgemを入れることができました。

下記の設定により、FactoryBotのデータ呼び出しを簡略化できます。

spec/rails_helper

require 'spec_helper'
ENV['RAILS_ENV'] ||= 'test'

RSpec.configure do |config|
  
  # FactoryBotの省略
  config.include FactoryBot::Syntax::Methods #ここです
end

この設定をすると、

FactoryBot.create(:user)create(:user)のように簡略化できます。

テストの補助ツール gem(capybara)

Gemfile

gem 'capybara'
$bundle install

spec/spec_helper

RSpec.configure do |config|
 require 'capybara/rspec'
end

で使用できるようになります。

参考資料

RSpecコトハジメ ~初期設定マニュアル~

RailsでRSpecの初期設定を行う際のテンプレートを作ってみる