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

时间:2012-07-25 21:56:18

标签: ruby-on-rails ruby-on-rails-3 rspec

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

假设辅助方法:

def my_helper(k,v)
    cookies[k] = v
end

测试:

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

任何人都知道怎么做?

3 个答案:

答案 0 :(得分:4)

如果你愿意,可以用一个简单的rspec模拟代替CookieJar:

helper.stubs(:cookies => cookies = mock)
cookies.expects(:[]=).with('foo', 'bar')
helper.my_helper('foo', 'bar')

答案 1 :(得分:2)

我在rails 3.2和rspec 2.8上。尽管rspec docs说明以下内容适用于请求规范(即集成测试)。

it 'should set cookies' do  
  cookies['foo'] = 'bar'
  visit "/"
  cookies['foo'].should == 'bar'
end

答案 2 :(得分:0)

通过

请求cookie
 helper.request.cookies[:awesome] = "something"