アウトプットの部屋

エンジニアになるためのアウトプット

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はルート用のスペックファイルを作成しないこと。(アプリケーションが大きくなりルートが複雑になったら作成するのもあり)