2012-07-25 10 views
5

No puedo averiguar cómo probar que se ha establecido una cookie al probar mi método de ayuda.¿Cómo accedo a las cookies en una especificación de ayudante?

hipotético método de ayuda:

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

prueba:

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

Alguien sabe cómo hacer esto?

+0

http://stackoverflow.com/questions/5475989/rspec-setting-cookies-in- a-helper-test aquí, siempre haga su tarea! –

+0

Vi esa publicación, como menciona el OP, todavía no está seguro de cómo obtener _ cookies. –

+0

De acuerdo con los documentos rspec 'response.cookies [" foo "]' debería funcionar pero estoy en los carriles 3.2 y rspec 2.8 y no funciona para mí. https://www.relishapp.com/rspec/rspec-rails/docs/controller-specs/cookies. Por lo que puedo decir, hay algo extraño entre rspec, las pruebas de integración de rieles y el rack, que hace que sea difícil de entender. – Dty

Respuesta

4

La sustitución de un simple simulacro rspec para la CookieJar funciona, si está dispuesto a:

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

solicitud a través de la cookie

helper.request.cookies[:awesome] = "something" 
+0

Esto no funciona para mí. Recuerda, estoy tratando de obtener la cookie, no configurarla. –

2

estoy en los carriles 3.2 y 2.8 rspec. A pesar de lo que dice el rspec docs, lo siguiente funciona para mí en una solicitud (es decir, prueba de integración).

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

Sí, definitivamente he verificado las cookies en las especificaciones de solicitud estándar. –

+0

@MattBaker ¿Qué versión de rieles y rspec estás usando? – Dty

+0

@MattBaker también aquí un artículo acerca de cómo alguien depuró su camino a través del uso de cookies en rspec. Puede ayudarte a descubrir cómo solucionar todo esto. http://dobbse.net/thinair/2011/12/capybara-racktest-rspec-cookies-2of2.html – Dty

Cuestiones relacionadas