帮助器方法
# Determine if this is user's first time
def first_time?
cookies[:first_time].nil?
end
尝试的Rspec测试
it "returns true if the cookie is set" do
cookies[:first_time] = "something"
helper.first_time?().should be(true)
end
错误:
undefined method `cookies' for nil:NilClass
我读到的所有关于Rspec和cookies的东西都与控制器有关。有没有办法在Rspec helper测试中获取/设置cookie?
(Rspec/Rspec-rails 2.5,Rails 3.0.4)
谢谢!!
更新:
我找到了一个关于如何设置cookie的答案,所以我把它留在这里供其他人参考。
我要找的是:
helper.request.cookies[:awesome] = "something"
还是不知道怎么弄饼干..。
发布于 2011-10-06 10:09:32
我所能找到的最好的解释是:https://www.relishapp.com/rspec/rspec-rails/docs/controller-specs/cookies
引用:
推荐的rails指南-3.0.0至3.1.0
示例:
# spec
request.cookies['foo'] = 'bar'
get :some_action
response.cookies['foo'].should eq('modified bar')
# controller
def some_action
cookies['foo'] = "modified #{cookies['foo']}"
end
发布于 2012-01-07 04:12:38
我只是偶然发现了你的问题(我正在寻找答案)。我成功地尝试了一下:
helper.request.cookies[:foo] = "bar"
发布于 2021-04-27 13:03:00
在Rails 6.1.3上,没有一个答案对我有效,但经过大量测试后,以下答案起作用了:
helper.cookies[:foo] = "bar"
对于签名的cookies:
helper.cookies.signed[:foo] = "bar"
https://stackoverflow.com/questions/5475989
复制相似问题