はじめに
新しいプロジェクトを作成するさいにrspecの導入手順を毎回調べるのが面倒だったのでメモがてら残しておきます。
前提
・Ruby on Rails 5.2.3
・Ruby 2.5.1
・rails new
した直後の状態であること(controller、model等が作成されていない状態である)
Gemfileへ追加
何はともあれGemfileへ追加しなければはじまらない。
group :development, :test do
gem 'rspec-rails', '~> 3.6.0'
end
本番環境(デプロイした状態)ではテスト実行することはないため、development、testへ上記コードを追加してください。
$ bin/bundle install
bundle installを実行し、rspecをインストールします。
テストデータベースの作成
もしテスト用データベースの設定をしていなければ設定する必要があります。
test:
<<: *default
database: hogehoge_test
test箇所にdatabase名を設定しましょう。(hogehogeの箇所は自分のプロジェクトによって適宜修正)
$ bin/rails db:create:all
rails:db:createの実行。
allをつけることによってdatabase.ymlに記述している全てのデータベースの作成ができます。
Rspecの設定
Rspecをインストールしていきます。
$ bin/rails db:create:all
無事インストールされると下記4つのファイルが生成されます。
create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
それぞれ、Rsepc用の設定ファイル(.rspec)、Rspec関連のファイルが格納されていくディレクトリ(spec)、Rspecのヘルパーファイル(spec_helper.rb、rails_helper.rb)になります。
また、好みで以下の設定を.rspecファイルに追加していきます。
--require spec_helper
--foramat documentation
--warning
bintstubの設定
springを利用してRspecのテスト時間を短縮するための設定をしていきます。(ここら辺は設定しなくても大丈夫です)
group :development do
gem 'spring-commands-rspec'
end
bundle installの実行
$ bin/bundle install
bintstupの設定
$ bundle exec spring bintstub rspec
正常にインストールされているか確認
以下のコマンドでRspecがインスールできているかどうか確認できます。
$ bin/rspec
あとは普通にmodel、controller等を追加、rspecコマンドでテスト生成をできるようになります。
参考文献
- Everyday Rails - RSpecによるRailsテスト入門