如何在帮助程序规范中访问cookie?

Mat*_*ker 5 rspec ruby-on-rails ruby-on-rails-3

在测试我的帮助方法时,我无法弄清楚如何测试已设置cookie.

假设辅助方法:

def my_helper(k,v)
    cookies[k] = v
end
Run Code Online (Sandbox Code Playgroud)

测试:

it 'should set cookies' do  
  helper.my_helper("foo", "bar")
  helper.cookies["foo"].should == "bar" #nil
  helper.response.cookies["foo"].should == "bar" #nil
end
Run Code Online (Sandbox Code Playgroud)

有人知道怎么做吗?

jar*_*obs 4

如果您愿意,可以用简单的 rspec 模拟替换 CookieJar:

helper.stubs(:cookies => cookies = mock)
cookies.expects(:[]=).with('foo', 'bar')
helper.my_helper('foo', 'bar')
Run Code Online (Sandbox Code Playgroud)