无法通过last_response读取Rspec 3中的cookie
我试图在Rspec 3.1中读取一个在接到电话后收到的cookie。 我看到它被返回但是last_response.cookies不存在。 我怎样才能阅读回复的cookie?
it "doesn't signs in" do get '/ui/pages/Home' puts last_response.cookies end
我知道它已经有一段时间了,但现在面对同样的问题,经过一番努力,我发现这里的一篇文章有一个有趣的方法。 因为我也找不到任何原生的解析方法,这对我来说很好。
基本上,将下面这段代码放在spec/spec_helper.rb
:
def cookies_from_response(response=last_response) Hash[response["Set-Cookie"].lines.map { |line| cookie = Rack::Test::Cookie.new(line.chomp) [cookie.name, cookie] }] end
你可以使用它来查看解析的hash
:
puts cookies_from_response
对于cookie的值检查,您可以使用以下内容:
# Given your cookie name is 'foo' and the content is 'bar' expect(cookies['foo'].value).to eq 'bar'
希望这对面临类似问题的其他人有所帮助。