RailsアプリケーションをRSpecでテストする#1
趣味で書いてるRailsアプリケーションのテストを書いたときの備忘録。いや、技忘録。
RailsアプリケーションをRSpecでテストする
Gemfileの変更とgemのインストール
Rails初級者なので、キソから。RailsのGemfileに以下を追加します。大体、RSpecによるテストはテスト環境や開発環境で実行することが多いと思うので、"group"の機能を使って環境の指定をしておきます。
# Gemfile group :development, :test do gem 'rspec-rails' end group :test do gem 'selenium-webdriver' gem 'capybara' end
Gemfileに追記をしたら、Bundlerを使ってGemをインストールします。
$ bundle install $ bundle update
RSpecを使用するために、Railsの設定を変更する
以下のコマンドでRSpecを使う準備をします。
$ rails generate rspec:install
これで、Railsアプリケーションルート直下に"spec"ディレクトリが作成されます。
テストケースを作成する
rails generateコマンドを使って、テストケースを作成します。
$ rails generate integration_test hoge
helperクラスにCapybaraの記述を追加
テストにはCapybaraを使用しますので、ヘルパークラスにCapybaraの記述を追加します。
# /spec/support/spec_helper.rb RSpec.configure do |config| . . config.include Capybara::DSL end
テストケースにテストを書く
# /spec/requests/hoge.rb require 'spec_helper' require 'support/utilities' describe "hoge" do describe "PageInit" do it "response 200 check" do get "/hoge" response.status.should be(200) # レスポンスコード200確認 end end describe "PageContent" do it "title tag check" do visit "/hoge" page.should have_title("hoge") # titleタグに"hoge"が入っているかを確認 end end end
テストを実行する
これでテストの準備が整いましたので、ターミナルからテストを実行します。
$ bundle exec rspec spec/requests/hoge.rb