参考文献
- パーフェクト Ruby on Rails 7章: Rails 4.1 + RSpec 3.0
- Everyday Rails - RSpecによるRailsテスト入門:Rails 4.0 + RSpec 2.14
Gemfileの設定
RSpec + FactoryGirlを使う場合
## For RSpec group :development, :test do gem 'rspec-rails', '3.0.1' gem 'factory_girl_rails', '~> 4.4.1' end group :test do gem "faker", "~> 1.1.2" # FactoryGirlでダミーデータを作るときに利用 end
ジェネレーターのカスタマイズ
config/application.rbに以下を追加(「Everyday Rails - RSpecによるRailsテスト入門」より)
class Application < Rails::Application 〜中略〜 config.generators do |g| g.test_framework :rspec, fixtures: true, view_specs: false, helper_specs: false, routing_specs: false, controller_specs: true, request_specs: false g.fixture_replacement :factory_girl, dir: "spec/factories" end
View, Routing, Helperのテスト用ファイルは自動生成しない。Fixture(テスト用のデータ設定ファイル)はFacotoryGirlで代用し、FactoryGirl用のディレクトリにファイルを作るという設定。
各種ひな型ファイルの作成
モデル用specファイルの作成。Eventモデルのspecファイルの雛形を作る場合
% ./bin/rails g rspec:model event
コントローラー用specファイルの作成。Eventsコントローラーのspecファイルの雛形を作る場合
% ./bin/rails g rspec:controller events
View用specファイルの作成。Eventsリソースのshowのspecファイルの雛形を作る場合
% ./bin/rails g rspec:view events show
テスト用データのファクトリーファイルの作成。Userモデルのnameとage属性付きで作成する場合。
% ./bin/rails g factory_girl:model user name:text age:integer