Ich kam mit dem folgenden Rack-Test-Hack, und etwas sauberer Selen-API-Gebrauch, um Devise remember-me Funktionalität in Gurke/Capybara zu testen. Es weist den Treiber lediglich an, den Sitzungscookie manuell zu löschen. Nicht alle Treiber unterstützt werden, ich implementiert nur die zwei, die ich verwendet habe:
http://gist.github.com/484787
Dieses Cookie Speicherung der Sitzung übernimmt. Entferne das @ announce-Tag aus dem Szenario, um die Ausführlichkeit loszuwerden.
Eine weitere Option, vorgeschlagen von Matt Wynne in the mailing list discussion, kann an anderen Cookie speichern suchen und sie durch Abfrage oder Löschen von Dateien zu löschen:
von agilen Schienen Buch gehoben:
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_"
oder
Rails hat auch eine Reset-Session-Methode, aber ich glaube, wir haben keinen Zugriff darauf, weil wir nicht in die Rails-Sitzung beim Testen einhaken können mit Capybara.
hoffe, das hilft,
Nick
Warum würden Sie wollen, wenn devise selbst wird dies tun, abgesehen von dort Tests? –
Weil ich denke, dass es wichtig ist, dass ich dieses Feature auf der Integrationsebene teste - das heißt - verwende ich es richtig ?, funktioniert es korrekt ?, und können meine Kunden sehen, dass es in Gurken basiert richtig funktioniert Akzeptanztests?. – srboisvert