Я хотел бы настроить период времени, после которого мое приложение Rails автоматически завершит сеанс пользователя.Тестирование Тайм-аут сеанса разработки с RSpec
Я нашел this question, чтобы дать мне именно то, что мне нужно, но я хотел бы подойти к этому через TDD. У меня есть относительно прочный набор тестов для приложения, я просто немного потерял, когда дело доходит до тестирования, если срок действия пользователя истек, за исключением того, что у него есть тест, и ждать окончания сеанса после того, как прошло x.minutes
, Конечно, есть лучший способ.
Я проверил документацию Devise and Warden для помощников по тестированию, занимающихся этим, и подошел сухой. У кого-нибудь есть подсказки?
Вам не нужно тестировать функции Разрабатывают такие как тайм-аут, так как он уже испытан в Завещании. – boblin
Вы можете попробовать что-то вроде [timecop] (https://github.com/travisjeffery/timecop). Это должно позволить вам начать сеанс в тесте интеграции, а затем ускорить перемотку вперед 30 минут и проверить, что он истек. –
[Тест тайм-аута] [https://github.com/plataformatec/devise/blob/master/test/integration/timeoutable_test.rb] может иметь ключ. Похоже, они называют 'get expire_user_path (user)' для имитации таймаута, но это дает ошибку «неопределенного метода» в моих тестах RSpec. –