RSpec のセットアップ

テストはRSpecを使って、ModelSpecとSystemSpecでよいかなあと思います。 ModelSpecはモデルクラス単体のテストでメソッドやバリデーションの挙動をテストします。 SystemSpecとは統合テストと呼ばれるテストで、実際にブラウザを起動して画面上で挙動をテストします。

Rspecのセットアップ

(Gemfile)

group :development, :test do
# (省略)
  gem 'rspec-rails'
end

rspec

$ bundle

必要なファイル群をrails gコマンドで生成します。

$ rails g rspec:install
(省略)
create  .rspec
create  spec
create  spec/spec_helper.rb
create  spec/rails_helper.rb

'--format documentation'を追記してRSpecのテスト結果をドキュメント形式にします。 (.rspec)

--require spec_helper
--format documentation

binstub を使ってテストスイートの起動時間を速くします。

group :development do
# (省略)
  gem 'spring-commands-rspec'
end
$ bundle

新しい binstub を作成 します。

$ bundle exec spring binstub rspec

bin ディレクトリ内に rspec という名前の実行用ファイルが作成されま す。 これによりbin/rspecコマンドでテストを実行できるようになります。

$ bin/rspec
(省略)
Running via Spring preloader in process 71648
No examples found.

Finished in 0.00059 seconds (files took 0.2438 seconds to load)
0 examples, 0 failures

さらに、rails gRSpec用のスペックファイルも一緒に生成されるように設定します。  

Rails.application.config.generators do |g|
# (省略)

  g.test_framework :rspec,
  fixtures: false,
  view_specs: false,
  helper_specs: false,
  routing_specs: false,
  controller_specs: false,
  request_specs: false
end

今回はModelSpecとSystemSpecだけなのでそれ以外はfalseとしておきます。