2012-03-28 35 views
3

我不能讓我的測試工作,並想知道如果有人有任何指針。我正在測試我的用戶編輯頁面,以便您必須登錄才能查看和編輯用戶配置文件。繼authlogic文檔,這裏是相關代碼:如何在rspec中測試authlogic?

​​

在我users_controller_spec

describe "GET 'edit'" do 

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

     it "should be successful" do 
      # test for /users/id/edit 
      get :edit, :id => @user.id 
      response.should be_success 
     end 

我測試了它使用的瀏覽器和它的作品。你必須登錄才能編輯你的個人資料,但它不適用於我的rspec測試。

我有一種感覺,它與mock controller有關,但我不知道如何。我也讀過test case,但仍然無法實現。

請大家幫忙,非常感謝!

回答

2

您可以存根CURRENT_USER方法上的ApplicationController像這樣:

fake_user = controller.stub(:current_user).and_return(@user) #you could use a let(:user) { FactoryGirl.create(:user) } instead of before_each 
get :edit, :id => fake_user.id 
response.should be_success