RSpecの設定
①Gemfileにgem 'rspec-rails'を追加。
spring-commands-rspecはテストスイートの起動時間を速くしてくれるgem。一緒に入れておく。
gorup :development, test do gem 'rspec-rails', '~> 3.6.0' gem 'spring-commands-rspec' end
②specフォルダを作成
$ bin/rails generate rspec:install
もしtest用のdbが作成されてないなら、database.ymlを編集してdb:create:allでdbを作る。
③RSpecの出力をデフォルト形式からドキュメント形式に変更
ドキュメント形式の方が読みやすいため、.rspecファイルを以下のように編集する
--require spec_helper --format documentation
④binstubを使ってテストスイートの起動時間を速くする
gem 'spring-commands-rspec'が入っていることを確認。入っていれば、以下のコマンドでbinstubをインストール
$ bundle exec spring binstub rspec
⑤RSpecを起動
$ bin/rspec
これで起動できたらOK
⑥rails gコマンドの時のrspecの設定 config/application.rbに以下を追加
module Projects class Application < Rails::Application config.load_defaults 5.1 config.generators do |g| g.test_framework :rspec, fixtures: false, view_specs: false, helper_specs: false, routing_specs: false end end end
fixtures: falseはテストDBにレコードを作成するファイルの作成をスキップする。(FactoryBotを使う時はtrueにする)
view_specs: falseはビュースペックを作成しないこと。(その代わりfeatureスペックでUIをテストする)
helper_specs: falseはヘルパー用のスペックを作成しないこと(余裕があればtrueにして作成してもよい)
routing_specs: falseはルート用のスペックファイルを作成しないこと。(アプリケーションが大きくなりルートが複雑になったら作成するのもあり)