Mi sono inventato il seguente trucco per il test del rack, e un po 'di pulizia del selenio leggermente più pulita, per testare la funzionalità di remember-me di Devise in cetriolo/capibara. Indica semplicemente al driver di cancellare manualmente il cookie di sessione. Non tutti i driver sono supportati, ho implementato solo i due che ho usato:
http://gist.github.com/484787
Ciò presuppone la memorizzazione dei cookie della sessione. Rimuovi il tag @announce dallo scenario per sbarazzarti della verbosità.
Un'altra opzione, suggerita da Matt Wynne in the mailing list discussion, potrebbe essere alla ricerca in altri negozi dei cookie, e di cancellarli dalla query o eliminazione file:
tolto dalle rotaie agile libro:
config.action_controller.session_store = CGI::Session::PStore (or just :p_store)
config.action_controller.session_options[:tmpdir] = "/Users/dave/tmp"
config.action_controller.session_options[:prefix] = "myapp_session_"
o
rake db:sessions:create
config.action_controller.session_store = :active_record_store
Rails ha anche un metodo di reimpostazione della sessione, ma credo che non abbiamo accesso a questo perché non possiamo collegarci alla sessione di binari durante il test con capibara.
Spero che questo aiuti,
Nick succo
Perché si vuole a quando escogitare stesso farà questo a parte di là test? –
Perché penso che sia importante assicurarsi che sto testando questa funzionalità a livello di integrazione - cioè, sto usando correttamente ?, funziona correttamente ?, e i miei clienti possono vedere che sta funzionando correttamente in base al cetriolo test di accettazione ?. – srboisvert