這是Cookies集合在以下環境中的控制器規範的問題:Cookies不會在Rspec的堅持在鐵軌3.1
- 軌3.1.0.rc4
- rspec的2.6.0
- RSpec的護欄2.6.1
我有創建廠用戶,調用方法的牌子,上面設置了一個cookie,然後測試以查看是否在用戶的簽署可以訪問一個頁面一個簡單的控制器規範。問題在於所有的cookie似乎在設置的身份驗證cookie和我的控制器上調用的「show」操作之間消失。
我的代碼在rails dev服務器上的瀏覽器中運行時工作正常。運行規範時的奇怪行爲是,儘管cookie散列設置的所有內容都會消失,但通過會話散列設置的所有內容都會一直存在。我在使用rspec時只是錯過了關於cookies的工作方式?
規格代碼
it "should be successful" do
@user = Factory(:user)
test_sign_in @user
get :show, :id => @user
response.should be_success
end
登錄代碼
def sign_in(user, opts = {})
if opts[:remember] == true
cookies.permanent[:auth_token] = user.auth_token
else
cookies[:auth_token] = user.auth_token
end
session[:foo] = "bar"
cookies["blah"] = "asdf"
self.current_user = user
#there are two items in the cookies collection and one in the session now
end
的get認證檢查:顯示要求的在這裏失敗了,因爲餅乾[:AUTH_TOKEN]是零
def current_user
#cookies collection is now empty but session collection still contains :foo = "bar"... why?
@current_user ||= User.find_by_auth_token(cookies[:auth_token]) if cookies[:auth_token]
end
這是一個錯誤?這是我不明白的某種意圖行爲嗎?我只是在尋找明顯的東西嗎?
我得到了同樣的問題 - 我已經嘗試了很多排列和亂翻並且我無法正常工作 –