そういうことだったんですね

いろいろ調べたり学んだりしたことを忘れないように書き連ねています

Rails - RSpec を使う

今回はActiveSupport::TestCaseではなく RSpecを使う方法です。

 

Bundler に設定

お約束ですね。

$ vi Gemfile
group :test do
  gem 'rspec-rails'
end
$ bundle

 

 

RSpecをインストール

specディレクトリの作成とhelperの設置です。これを忘れると使えません。

$ rails generate rspec:install

 

scaffold 時にrspec を作成する

-t rspec オプションを使います

$ rails generate scaffold User name:string

specディレクトリ以下に作成され、モデル、コントローラ、ビュー、ルーティングのテストスケルトンが作成されます。先ほど実行したコマンドだと次のファイルが作成されます。IntegrationTest は ActionDispatch::IntegrationTest が使われます。 

spec/models/user_spec.rb
spec/controllers/users_controller_spec.rb
spec/views/users/edit.html.erb_spec.rb
spec/views/users/index.html.erb_spec.rb
spec/views/users/new.html.erb_spec.rb
spec/views/users/show.html.erb_spec.rb
spec/routing/users_routing_spec.rb

spec以下のフォルダ毎にmodels => ユニットテスト controllers => 機能テスト views => 画面テスト routing=>ルートテスト が配置されます。ここのテストを書いていけばよい、というわけです。

テストを実行する

$ bundle exec rspec   # 全テストを実行する
$ bundle exec rspec spec/models  # 単体テストのみ実行
$ bundle exec rspec spec/controllers/users_controller_rspec.rb  # 特定のテストのみ実行

リファクタリングRuby―実践ワークブック

リファクタリングRuby―実践ワークブック

  • 作者: ウィリアム・C.ウェイク,ケヴィンラザフォード,William C. Wake,Kevin Rutherford,小林健一,吉野雅人,太田大地,坂本一憲,小島努
  • 出版社/メーカー: ピアソン桐原
  • 発売日: 2010/11
  • メディア: 単行本
  • 購入: 4人 クリック: 181回
  • この商品を含むブログ (6件) を見る