У меня есть веб-приложение, в котором я хочу запустить некоторые системные тесты, и для этого мне нужно будет переместить системное время. Приложение использует DateTime на всем протяжении.Как я могу тестировать приложения Perl с использованием системного времени?
У кого-нибудь есть рекомендации относительно того, как изменить время, которое DateTime-> теперь сообщает? Единственное, что приходит на ум, - это подклассификация DateTime и возиться со всеми линиями «использования», но это кажется довольно инвазивным.
Обратите внимание на ответы:
Все три будут работать нормально, но Hook :: LexWrap один является один я выбрал, потому что (а) Я хочу, чтобы переместить часы, а не трясти его немного (который это больше цель того, что делает Time :: Mock и друзья); (b) Я постоянно использую DateTime, и я рад, что у меня возникли ошибки, если я случайно не использовал; и (c) Крюк :: LexWrap просто более изящный, чем взломать в таблице символов, для всего, что он делает то же самое. (Кроме того, он оказывается зависимым от некоторого модуля, который я уже установил, поэтому мне даже не пришлось использовать CPAN ...)
http: //search.cpan.org/perldoc/Hook :: LexWrap также будет работать как ссылка. –
Интересно, и указатель документа был очень полезен. Я бы порекомендовал также упоминать версию, не связанную с областью, в ответе, так как это то, что я изначально искал, но обе версии будут полезны для меня. – ijw