2013-10-21 56 views
0

我沒有在我的應用程序中使用任何寶石認證...所以我sign_in方法看起來像這樣Rspec的錯誤:未定義的局部變量或方法'餅乾爲#<RSpec的模型爲Sign_in方法

def sign_in(user) 
remember_token = User.new_remember_token 
cookies[:remember_token] = remember_token 
user.update_attribute(:remember_token, User.encrypt(remember_token)) 
self.current_user = user 
end 

我在app/helpers/session_helper.rb和spec/support/helpers/session_module.rb下有這個 我需要在我的模型規範中調用sign_in(user)...我得到錯誤未定義的局部變量或方法'cookies'

回答

2

cookies散列僅在RSpec的控制器測試中可用。你可以告訴你的規格假裝他們是通過添加型控制器規格:請求你的情況下,像這樣:

describe 'something that requires cookies', type: :request do 
    it { expect(cookies[:remember_token]).to be_nil } // now the variable is defined as nil. 
end 

也就是說,需要你的模型來了解一下驚喜我簽約。這種跨範圍測試通常屬於特徵。

1

model spec不設置測試請求上下文。所以你沒有得到餅乾哥們!

在這裏使用存根或嘲笑。

相關問題