辅助方法
# Determine if this is user's first time
def first_time?
cookies[:first_time].nil?
end
Run Code Online (Sandbox Code Playgroud)
尝试过Rspec测试
it "returns true if the cookie is set" do
cookies[:first_time] = "something"
helper.first_time?().should be(true)
end
Run Code Online (Sandbox Code Playgroud)
错误:
undefined method `cookies' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
我读过的有关Rspec和cookies的所有内容都与控制器有关.在Rspec帮助器测试中获取/设置cookie的任何方法?
(Rspec/Rspec-rails 2.5,Rails 3.0.4)
谢谢!!
更新:
找到了关于如何设置cookie的答案,所以我将把它留在这里供其他人参考.
我正在寻找的那件作品:
helper.request.cookies[:awesome] = "something"
Run Code Online (Sandbox Code Playgroud)
仍然不知道如何获取饼干......
我正在尝试使用rspec 2和rails 3在执行GET请求时传递cookie.
到目前为止我已经尝试了以下内容.
get "/", {}, {"Cookie" => "uuid=10"} # cookies[:uuid] is nil
request.cookies[:uuid] = 10 # request is nil
@request.env["Cookie"] = "uuid=10" # @request is nil
helper.request.cookies[:uuid] # helper is not defined
cookies[:uuid] = 10 # cookies[:uuid] is nil
controller.cookies[:uuid] = 10 # cookies is nil
Run Code Online (Sandbox Code Playgroud)
可能吗?