2010-02-06 25 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

仍然失敗...:S這裏有很多問題,第一個Factory(:user)自動登錄用戶,所以'UserSession.create(@sender)'是沒用的。第二個是authlogic嘲弄請求的方式,第一個是可行的,但不是第二個。 – knoopx 2010-02-06 15:45:20

+0

再看看它,這應該是一個集成測試,而不是功能。如果您將所有登錄/註銷過程模擬爲請求,則在集成測試中不會出現此問題。 功能測試用例應該只包含一個請求imo。 – Leventix 2010-02-06 16:21:38