Я придумал следующий хак-тест для рэка и немного более чистое использование API-селена, чтобы проверить функциональность Devise запомнить меня в огурце / капибаре. Он просто говорит водителю вручную стереть сессионный cookie. Поддерживаются не все драйверы, я реализовал только два, которые использовал:
http://gist.github.com/484787
Предполагается, что файл cookie хранит сеанс. Удалите тег @announce из сценария, чтобы избавиться от многословия.
Другой вариант, предложенный Мэттом Уинном в обсуждении списка рассылки , может искать другие хранилища файлов cookie и удалять их путем запроса или удаления файла:
Поднятая из гибких рельсов книга:
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_"
или
rake db:sessions:create
config.action_controller.session_store = :active_record_store
В Rails также есть метод сброса сеанса, но я считаю, что у нас нет к нему доступа, потому что мы не можем подключиться к сеансу rails при тестировании с капибарой.
Надеюсь, это поможет,
Ник