Тестовый клиент и фикстуры
Имитируйте запросы и создавайте исходные тестовые данные
«Тестовый клиент и фикстуры» — бесплатный урок 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 — локальная установка не требуется.
Все уроки этого курса
- Класс Paginator
- Управление страницами в ListView
- Написание TestCase и проверок
- Тестовый клиент и фикстуры