Django Academy · Урок

Тестовый клиент и фикстуры

Имитируйте запросы и создавайте исходные тестовые данные

Урок 4 из 413 шагов

«Тестовый клиент и фикстуры» — бесплатный урок Django Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Django Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Django Academy содержит 4 уроков всего.

Тестирование целых представлений

Тесты моделей полезны, но необходимо проверять и целые страницы. Тестовый клиент позволяет имитировать настоящий запрос браузера внутри теста. 🌐

Клиент готов

Каждый TestCase бесплатно предоставляет self.client. Настройка не нужна: клиент уже подключён и ожидает в каждом тесте.

Создание GET-запроса

Вызовите self.client.get с URL, чтобы получить страницу так же, как это сделал бы браузер, а затем изучите ответ.

response = self.client.get('/articles/')

Проверка кода состояния

Ответ содержит код состояния. Проверьте, что он равен 200, чтобы убедиться в успешной загрузке страницы.

self.assertEqual(response.status_code, 200)

Более удобная проверка состояния

Django предлагает сокращённый вариант. Используйте assertContains, чтобы одновременно подтвердить статус 200 и наличие ожидаемого текста на странице.

self.assertContains(response, 'Latest Articles')

Отправка данных формы

Имитируйте отправку формы с помощью self.client.post, передав словарь полей, которые заполнил бы пользователь.

self.client.post('/add/', {'title': 'Hi'})

Тестирование по имени маршрута

Жёстко заданные URL легко ломаются. Вместо этого используйте reverse, чтобы найти URL по имени маршрута.

url = reverse('article-list')
response = self.client.get(url)

Что такое фикстуры?

Фикстура — это файл с заранее созданными строками. Она заполняет тестовую базу данных, чтобы каждый тест начинался с одинаковых известных данных.

Создание файла фикстуры

Экспортируйте существующие строки с помощью dumpdata. Django запишет их в JSON, который позже можно снова загрузить как фикстуру.

python manage.py dumpdata blog > data.json

Загрузка фикстуры в тестах

Перечислите файлы фикстур в атрибуте фикстур, и Django будет автоматически загружать их перед каждым тестом.

class BlogTests(TestCase):
    fixtures = ['data.json']

Фикстуры и setUp

Используйте фикстуры, когда нужен фиксированный набор данных, загружаемый быстро, а setUp — когда каждому тесту нужны небольшие специально подготовленные объекты.

Быстрая проверка

Вы хотите убедиться, что страница загрузилась и содержит заголовок.

Итоги

Вы управляли представлениями с помощью тестового клиента, проверяли состояние и содержимое, отправляли данные формы, а также загружали данные с помощью фикстур и dumpdata. 🎉

Можно начать бесплатно

Изучай Python с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Тестовый клиент и фикстуры» бесплатный?

Да — полный текст урока «Тестовый клиент и фикстуры» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Django Academy, подпишись на CoddyKit PRO. Курс Django Academy содержит 4 уроков всего.

Чему я научусь в уроке «Тестовый клиент и фикстуры»?

Имитируйте запросы и создавайте исходные тестовые данные Ты практикуешь Django Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Django Academy?

Предыдущий опыт не требуется. Django Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Тестовый клиент и фикстуры»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Django Academy?

Да. Каждый урок Django Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Класс Paginator
  2. Управление страницами в ListView
  3. Написание TestCase и проверок
  4. Тестовый клиент и фикстуры
← Назад к Django Academy