无法通过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' 

希望这对面临类似问题的其他人有所帮助。