我想在我的Rails應用程序的水豚測試套件中使用rspec mocks來存檔已登錄的用戶(使用Devise/Warden)。這將節省大量時間,並且意味着我的測試套件可以/將定期運行。如何在水豚測試中用Rspec取消監督/設計
以前我能夠通過這樣的一些代碼磕碰了我的會話模型做到這一點使用authlogic:
def login(user)
user_session = mock_model(UserSession, {:user => user})
UserSession.stub(:find).and_return(user_session)
end
現在,我使用的設計,我再也不用訪問UserSession對象。因爲我使用水豚來測試我的代碼,所以我沒有直接訪問請求對象來使用sign_in
測試助手中構建的devise。
我的問題是:我怎樣才能模擬一個登錄的用戶與水豚,設計和規範嘲笑,而不需要每一個登錄用戶的情況下先登錄註冊路徑,填寫表格,提交,等待作出迴應,然後轉到所需的頁面?
不是你問什麼,但以防萬一[login.rb](https://github.com/gitlabhq/gitlabhq /blob/master/spec/support/login.rb)和[sample_use.rb](https://github.com/gitlabhq/gitlabhq/blob/master/spec/requests/dashboard_issues_spec.rb) – clyfe 2012-01-02 22:10:49
感謝您的回覆,我已經有了這樣的東西,我試圖避免。儘管你的評論對於那些未來的訪問者來說確實有幫助。 – Schneems 2012-01-02 22:17:19