3

AuthlogicとActiveRecord SessionStoreを使用するRails 3.1アプリケーションで簡単な統合テストを作成しようとしていますが、 。Rails 3.1/Authlogic/ActiveRecordセッションストアとの統合テストで正規ユーザーを取得できません

まず、私は古典的なアプローチを試してみました:require "authlogic/test_case"ラインは、私たちのtest_helper.rbに既にあることを確認した後、私はその後activate_authlogicを呼び出し、セッションを作成するUserSession(@user)を使用する設定方法を書きました。

これ(すなわち。UserSession.findnilを返します)殺された(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 

答えて

0

Dear people from the future:

私は「test_helper」を含む前ENV [「RAILS_ENVを」]に設定することにより、異なる環境で許可されたユーザに必要なテストを開始することでこれに回避策を考え出しました。その後、その環境のsession_storeをcookie_storeに変更しました。

ENV["RAILS_ENV"] = "test_cs" 
require 'test_helper' 
end 

class ProtectedTest < ActionController::IntegrationTest 
    # ... 
end 
関連する問題