AuthlogicとActiveRecord SessionStoreを使用するRails 3.1アプリケーションで簡単な統合テストを作成しようとしていますが、 。Rails 3.1/Authlogic/ActiveRecordセッションストアとの統合テストで正規ユーザーを取得できません
まず、私は古典的なアプローチを試してみました:require "authlogic/test_case"
ラインは、私たちのtest_helper.rb
に既にあることを確認した後、私はその後activate_authlogic
を呼び出し、セッションを作成するUserSession(@user)
を使用する設定方法を書きました。
これ(すなわち。UserSession.find
はnil
を返します)殺された(UserSession.find
によって証明される)セッションを作成しなかったが、保護されたリソース上のget
要求を行うとき、応答はログインフォームやセッションへのリダイレクトになり
私は電子メール/パスワードもPOSTしようとしましたが、セッションストアをcookie_storeに戻した場合はしか動作していないようです(何か私が見つけたものはthis commentです)。
セッションをCookieStore
に切り替えることはオプションになりますが、すでにActiveRecordストアに依存しているテストがいくつかあります。
1回のテストでセッションストアを切り替える方法はありますか?この問題に対する他の解決策はありますか?
require 'test_helper'
class ProtectedTest < ActionController::IntegrationTest
def setup
activate_authlogic
@user = Factory(:user, :roles => 'user')
UserSession.create(@user)
end
def test_protected
https!
get '/protected'
assert_response :success
end
end