Я хочу написать несколько тестов для представлений в приложении профиля Django.
У представлений есть умная логика обработки ошибок. например если мы пытаемся создать профиль, а профиль уже существует, то просто перенаправить на страницу существующего профиля (или, может быть, на страницу редактирования профиля).
Как мне проверить, что эта обработка ошибок работает должным образом? Что такое лучшие практики?
Одна из идей состоит в том, чтобы выполнить BDD с помощью Zombie.js и проверить, вижу ли я страницу с заголовком не «Создать профиль» (или, может быть, проверить, что я вижу страницу с заголовком «Редактировать профиль»). Но документы по тестированию Django говорят:
- Используйте тестовый клиент Django, чтобы убедиться, что вызывается правильное представление и что представление собирает правильные данные контекста.
- Используйте встроенные в браузер среды, такие как Twill и Selenium, для тестирования отображаемого HTML и поведения веб-страниц, а именно функций JavaScript.
Однако, если я хочу использовать тестовый клиент Django, он может сделать следующее:
- Моделируйте запросы GET и POST по URL-адресу и наблюдайте за ответом — от низкоуровневого HTTP (заголовки результатов и коды состояния) до содержимого страницы.
- Проверьте, выполняется ли правильное представление для заданного URL-адреса.
- Проверьте, что данный запрос обрабатывается заданным шаблоном Django с контекстом шаблона, который содержит определенные значения.
Должен ли я использовать тестовый клиент, а затем посмотреть содержимое страницы? Должен ли я видеть, какой шаблон был обработан? Каков правильный способ проверить это представление?