Как проверить временные функции в Django? - PullRequest
0 голосов
/ 29 марта 2011

Я пишу приложение, которое записывает время событий. Для модульного тестирования я обычно использовал бы monkey-patch, чтобы заменить datetime.time на фальшивку, чтобы я мог проверить его правильно. Я пытаюсь выполнить комплексные тесты с Selenium, с тестовыми примерами в отдельной программе, не используя python manage.py test. Поэтому я не могу сделать патч. Я попытался использовать manage.py, но это не помогло.

Я уверен, что это решенная проблема. Как я должен это делать? Является ли Selenium просто неподходящим инструментом для такого рода испытаний? Я скучаю по тому, как заставить тестовый набор общаться с приложением?

1 Ответ

1 голос
/ 30 марта 2011

Selenium общается с полноценным веб-сервером и не имеет доступа к интерпретатору python, работающему внутри этого веб-сервера. Даже если вы пишете сценарий SeleniumRC с python, экземпляр сценария интерпретатора отделен от экземпляра веб-сервера.

Если вы запускаете тестовый веб-сервер через manage.py runserver, вы можете написать свою собственную команду управления, чтобы заменить 'runserver' версией, которая исправляет datetime.time. Это будет непросто, поэтому вы можете подумать о том, чтобы либо пересмотреть свои тесты на основе Selenium, чтобы справиться с событиями, происходящими в реальном времени, либо преобразовать чувствительные ко времени тесты в клиентские тесты django, чтобы вы могли использовать библиотеку mock.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...