web-dev-qa-db-ja.com

rSpecとRails3でデバイスをスタブする

DeviseをRails 3 with rSpec。私はUsersControllerモデルとUserモデルを持っています。どちらも現時点ではDeviseに関連付けられています。 mコントローラーの仕様を書いていて、Deviseとしての期待に本当に苦労していますsign_inは本当に作品を詰まらせています。

どんなことでも役に立ちます。

34
stuartc

これを行うのは今ではかなり簡単であることがわかりました。 rspec2とdeviseに問題がありましたが、現在は解決されています。私はあなたがあなたの宝石を更新する必要があると思います。その後、あなたは書くことができます

require 'spec_helper'

describe DoStuffController do
  include Devise::TestHelpers

  before (:each) do
    @user = Factory.create(:user)
    sign_in @user
  end

  describe "GET 'index'" do
    it "should be successful" do
      get 'index'
      response.should be_success
    end
  end
end

[更新]デバイスwikiに、詳細な(そしておそらくより最新の) 説明 があります。

74
nathanvda

考案が依存している基礎となるワーデン( https://github.com/wardencommunity/warden/wiki )オブジェクトをモックしてみることができます。これは、RSpecでこれを実現する方法の詳細へのリンクです。 : http://www.michaelharrison.ws/weblog/?p=349 (エントリは他のトピックもカバーしています。必要な解決策はページの下部にあります。)

9
Oscar Duignan