2010-08-26 68 views

回答

13

这是on Rails的2.3.8工程(行注释掉使测试不及格)的代码:

test 'cookie testing should work' do 
    @request.cookies['foo'] = 'Foo' 
    # cookies['foo'] = 'Foo' 
    # this does not work to: CGI::Cookie.new('foo', 'bar') 
    get :index # does: cookies[:foo] = (cookies['foo'] || "") + " bar!" 
    # the cookie key in the controller can by a symbol, but not in the test 
    assert_response :success 
    assert_not_nil cookies['foo'], "Cookie with foo key should not be nil. Debug: Cookies=#{cookies.inspect}" 
    assert_equal "Foo bar!", cookies['foo'], "Debug: Cookies=#{cookies.inspect}" 
    # assert_not_nil @cookies['foo'], "Cookie with foo key should not be nil. Debug: Cookies=#{@cookies.inspect}" 
    # assert_not_nil @request.cookies['foo'], "Cookie with foo key should not be nil. Debug: Cookies=#{@request.cookies.inspect}" 
    # assert_equal "Foo bar!", @request.cookies['foo'], "Debug: Cookies=#{@request.cookies.inspect}" 
end 

我必须花一些相当长的时间寻找答案。

+4

好吧,十分钟似乎很长时间;-)) – Arsen7 2011-06-30 08:59:29

+2

他他:)我已经得到了答案,当我在StackOverflow上分享它;) – 2011-08-03 13:00:03

+0

让我血腥的年龄来弄清楚,谢谢你的帮助 – stephenmurdoch 2013-03-03 16:37:16