Тестирование в Django

Концепция тестирования
Автоматизированное тестирование — чрезвычайно полезный инструмент для отлавливания и устранения ошибок. Вы можете использовать набор тестов когда:

  • Пишете новый код.
  • Проводите рефакторинг или модифицируете старый код.
Тестирование веб-приложения — сложная задача, поскольку веб-приложение состоит из нескольких уровней логики( уровень запросов HTTP, обработка форм, рендеринг шаблонов страниц)



С помощью среды выполнения тестов Django и различных утилит вы можете:

  • моделировать запросы,
  • вставлять тестовые данные,
  • проверять вывод вашего приложения
  • и т. д.
Предпочтительный способ написания тестов в Django — использование unittest модуля, встроенного в стандартную библиотеку Python. Также в Django есть API, которое позволяет использовать различные среды тестирования.
Общее в написании тестов
Тесты оформляются в классы, которые наследуются от класса TestCase из пакета django.test. В Django встроена собственная программа запуска тестов, при запуске она ищет тесты в пакетах текущей директории, в файлах с именем test*.py (в начале файла должно быть слово test). Для написания тестов лучше придерживаться правила разделения тестов по уровням логики приложения:

  • Тестирование моделей - файл test_models.py
  • Тестирование отображений - файл test_views.py
  • Тестирование адресов страниц - файл test_urls.py
  • Тестирование форм - файл test_forms.py
Тестирование в Django
Общие вопросы написания тестов в приложениях Django. Модуль Unitest в Django
Пример подготовки тестов для моделей приложения Django
Пример подготовки тестов для проверки адресации страниц приложения Django
Пример подготовки тестов для проверки отображений моделей в приложении Django
Пример подготовки тестов для форм внесения данных приложения Django