0

我没有在我的应用程序中使用任何 gem 进行身份验证......所以我的 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) ...我收到错误undefined local variable or method `cookies' for


模型规范不设置测试请求上下文。所以你没有饼干伙计!

在这里使用存根或模拟。

4

2 回答 2

2

cookie 哈希仅在 RSpec 的控制器测试中可用。您可以通过将 type: :request 添加到您的上下文来告诉您的规范假装它们是控制器规范,如下所示:

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

也就是说,需要你的模型知道登录让我感到惊讶。这种跨范围测试通常属于一个特性。

于 2013-12-14T00:23:57.013 回答
1

模型规范不设置测试请求上下文。所以你没有饼干伙计!

在这里使用存根或模拟。

于 2013-10-21T13:21:27.697 回答