RSpecコマンドメモ

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

RailsプロジェクトへのRSpecのインストール

rails_appがRailsプロジェクトの場合。

% cd rails_app
% bundle
% ./bin/rails generate rspec:install

ジェネレーターのカスタマイズ

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