你會如何在rSpec中設計Rails 3中的Devise。我有一個UsersController
和User
模型。這兩者都與Devise目前有關,我正在編寫控制器規格,我真的很難與我的期望,因爲設計sign_in
真的干擾了作品。rSpec和Rails3中的stubbing設計
任何事情都會有所幫助。
你會如何在rSpec中設計Rails 3中的Devise。我有一個UsersController
和User
模型。這兩者都與Devise目前有關,我正在編寫控制器規格,我真的很難與我的期望,因爲設計sign_in
真的干擾了作品。rSpec和Rails3中的stubbing設計
任何事情都會有所幫助。
我發現它現在很容易做到這一點。 rspec2和devise有問題,但現在已解決。我想你會需要更新你的寶石。然後,你可以寫
require 'spec_helper'
describe DoStuffController do
include Devise::TestHelpers
before (:each) do
@user = Factory.create(:user)
sign_in @user
end
describe "GET 'index'" do
it "should be successful" do
get 'index'
response.should be_success
end
end
end
[更新]在色器件維基現在有一個詳細的(甚至更多先進的日期)description。
正如向其他人可能會遇到此問題的說明。如果您使用確認,請確保您的工廠定義:confirmed_at或您將其傳入。 – RyanJM 2011-07-22 17:14:19
在設計wiki上有詳細說明:https://github.com/plataformatec/devise/wiki/How-To:-Controllers -and-Views-tests-with-Rails-3-(and-rspec) – 2011-11-13 14:55:42
@KevinBedell,URL幾乎是正確的 - 它缺少最後一個')'。因此,正確的URL是[this](https://github.com/plataformatec/devise/wiki/How-To:-Controllers-and-Views-tests-with-Rails-3-%28and-rspec%29) – Zabba 2012-05-05 20:02:45
您可以嘗試嘲弄底層監獄長其設計依賴於,這裏是一些細節的鏈接,您如何使用RSpec做到這一點(http://wiki.github.com/hassox/warden/)對象:http://www.michaelharrison.ws/weblog/?p=349(條目包括一些其他的話題,以及,你想要的解決方案是朝向頁面的底部。)
非常感謝!正是我一直在尋找的。 – stuartc 2010-08-05 06:54:09
下面的新答案提供了一個更好的方法http://stackoverflow.com/questions/3387485/stubbing-devise-in-rspec-and-rails3/3512813#3512813 – 2010-10-20 10:25:56
隨着設計,你可以完全剔除用戶模型: https://github.com/plataformatec/devise/wiki/How-To:-Stub-authentication-in-controller-specs – Flov 2012-09-02 05:49:13