Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby on Rails | Devise利用時のテスト

概要

Devise利用時のテスト

詳細

Devise利用時のController等のテストにおいて、認証以降のページが対称となる場合のテスト方法。

まずDevise::TestHelpersをincludeします

include Devise::TestHelpers

あとは各ケースのbefore等でsign_inメソッドを呼び出し、対象ユーザーを引数に渡します。
User自体はFactoryGirlなりFixtureなりで予め用意しておくこと。

before(:each) do
  sign_in :user, @login_user
end

サンプル

require 'spec_helper'

describe UsersController do
  include Devise::TestHelpers
  
  before(:each) do
    @login_user = FactoryGirl.create(:user)
  end

  describe "POST 'index'" do
    before(:each) do
      sign_in :user, @login_user
    end

    it "returns http success" do
      post 'index', @params
      response.should be_success
    end
  end
end