2012-01-04 12 views
8

Sto usando rspec e capybara per il test di integrazione.oggetto di sessione nel test di integrazione di rspec

È un modo per creare oggetti di sessione nelle specifiche richieste?

Ho una pagina di visualizzazione in cui utilizzo un oggetto di sessione per controllarne il valore per visualizzare il contenuto selettivo.

Il problema è che non posso creare un oggetto di sessione nelle specifiche della richiesta. Ecco un esempio della vista:

<% if session[:role] == "Role" %> 
---content--- 
<% else %> 
--content-- 
<% end %> 

E dentro la mia richiesta specifica

session[:role] = "Role" 
visit my_path 

Ma mi tiri un errore "metodo non definito` session' per nil: NilClass".

Ho anche provato a cercare nella creazione di oggetti di sessione di capibara. Ma non riusciva a trovare nulla.

È una soluzione alternativa per questo? Non riesco a trovare nulla relativo a questo, sembra che non sia possibile. Un piccolo aiuto è molto apprezzato.

+0

All'interno della condizione if si intende probabilmente == invece di =. –

+0

sì m scusa, intendevo == qui –

risposta

3

Il modo in cui si suppone di fare le specifiche di richiesta è visitare qualsiasi URL che l'utente dovrebbe normalmente visitare per poter impostare quella variabile di sessione.

Non so in nessun altro modo, altro forse che impostare manualmente il cookie di sessione. Capybara.current_session.driver.browser.set_cookie facciamo questo, ma dovresti creare il valore del cookie a mano.

+0

ho provato questo: cookies [: role] = "Coaching", Capybara.current_session.driver.browser.set_cookie (cookies [: role]) ,, ma non funziona.what mi fare male? –

+1

Questo non imposterà la sessione. Dovresti riprodurre il modo in cui i binari generano i cookie di sessione e utilizzare l'output di quello nella chiamata a set_cookie. Sei decisamente fuori dal coro qui - come ho detto il solito approccio è solo per visitare la pagina che imposta la sessione –

+0

nel mio caso io configuro queste sessioni in un metodo privato nel controller dell'applicazione. –

Problemi correlati