2010-02-06 4 views
0

Authlogic으로 테스트 할 때 다른 사용자를 로그 아웃하고 로그인 할 수있는 방법이 있습니까?Authlogic : 동일한 테스트에서 두 번 로그인

다음 테스트 케이스는 ...

class MessagesControllerTest < ActionController::TestCase 
    setup :activate_authlogic 

    should "sender send a message and recipient delete it" do 
    @sender = Factory(:user, :login => 'sender') 
    @recipient = Factory(:user, :login => 'recipient') 

    UserSession.create(@sender) 
    post :create, :user_id => @recipient.id, :message => Factory.attributes_for(:message) 
    assert_equal @sender, assigns(:current_user) 

    UserSession.create(@recipient) 
    post :destroy, :user_id => @recipient.id, :message => @message 
    assert_equal @recipient, assigns(:current_user) 
    end 
end 

미친 것은 요청하는 세션 PARAMS이 좋아 보이는 것입니다

# UserSession.create(@sender) 
"user_credentials"=> "605a73e0f1b4dcecf5495d549b9d33eb6d3197f3a1fdb033c86bca456a0a0c75a42b63c924edb5d071f6d748aea3870f312a908eb501e6814c69abdab9bbf387", 
"user_credentials_id"=>1 


# UserSession.create(@recipient) 
"user_credentials"=> "e14363b2065b7202e766205e807d6b531e230a136c70ea13c0853c7c0f275fb95f0185b9f17a934483cadda693e50956d1bfda8c820895f574a06861479af18c", 
"flash"=>{:notice=>"Message was successfully created."}, 
"user_credentials_id"=>2 

답변

0

무엇 session = UserSession.create(@sender)session.destroy에 대해 실패?

+1

아직도 실패 ... : 여기에 많은 문제가 있습니다. 첫 번째 팩토리 (: user)가 자동으로 사용자로 로그인하므로'UserSession.create (@sender)'는 쓸모가 없습니다. 두 번째 방법은 authlogic이 요청을 조롱하는 방법입니다. 첫 번째 것은 작동하지만 두 번째는 작동하지 않습니다. – knoopx

+0

두 번째로 살펴보면이 테스트는 통합 테스트이며 작동하지 않아야합니다. 모든 로그인/아웃 프로세스를 요청으로 시뮬레이션하면 통합 테스트에서이 문제가 발생하지 않습니다. 기능 테스트 케이스에는 하나의 요청 만 포함되어야합니다. – Leventix