解决方法
这是适用于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
我花了很长时间寻找答案.