2012-07-25 13 views
5

Non riesco a capire come verificare che un cookie sia stato impostato durante il test del mio metodo di supporto.Come accedere ai cookie in una specifica helper?

metodo di supporto ipotetico:

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

prova:

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

Qualcuno sa come fare questo?

+0

http://stackoverflow.com/questions/5475989/rspec-setting-cookies-in- a-helper-test qui, fai sempre i tuoi compiti! –

+0

Ho visto quel post, come cita l'OP, non sa ancora come _get_ cookies. –

+0

Secondo i documenti di rspec 'response.cookies [" foo "]' dovrebbe funzionare ma io sono su rails 3.2 e rspec 2.8 e non funziona per me. https://www.relishapp.com/rspec/rspec-rails/docs/controller-specs/cookies. Per quanto ne so, c'è qualcosa di strano tra rspec, test di integrazione di rails e rack che rende questo difficile da capire. – Dty

risposta

4

Sostituendo una semplice finta RSpec per il Cookiejar funziona, se siete disposti a:

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

richiesta il cookie attraverso

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

Questo non funziona per me. Ricorda, sto provando a _get_ il cookie, non a impostarlo. –

2

Sono su rotaie 3.2 e RSpec 2.8. Nonostante ciò che il rspec docs dice che i seguenti lavori per me in una richiesta spec (cioè test di integrazione).

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

Sì, ho sicuramente controllato i cookie nelle specifiche delle richieste standard. –

+0

@MattBaker Quale versione di rails e rspec stai usando? – Dty

+0

@MattBaker anche qui un articolo su come qualcuno ha effettuato il debug attraverso i cookie in rspec. Potrebbe aiutarti a capire come risolvere il problema. http://dobbse.net/thinair/2011/12/capybara-racktest-rspec-cookies-2of2.html – Dty

Problemi correlati