10 промтов для написания unit-тестов и интеграционных тестов в 2026 году
Когда я пишу код, тесты — это не опция, а базовая гигиена. Но писать их вручную для каждого модуля — терять время. За последние два года я натренировал связку «промт → AI → генерация тестов» до автоматизма. Вот 10 проверенных промтов, которые я использую ежедневно для pytest, Jest и unittest. Никакой воды — только то, что работает.
1. Базовый промт для генерации unit-тестов на pytest
Когда использовать: У вас есть функция или класс, и нужно быстро покрыть его простыми тестами.
Промт:
Напиши unit-тесты на pytest для следующей функции. Проверь граничные случаи: пустой ввод, None, отрицательные значения. Используй фикстуры для изоляции зависимостей. Код:
Реальный пример: На прошлой неделе я тестировал парсер логов. Промт сгенерировал 12 тестов за 30 секунд, включая проверку на битые строки и переполнение буфера. Экономия — минимум час ручной работы.
2. Интеграционные тесты с моками внешних API
Когда использовать: Ваш код дёргает сторонние сервисы (Stripe, Telegram, Мосбиржу), и нужно проверить логику обработки ответов без реальных запросов.
Промт:
Сгенерируй интеграционные тесты на pytest для функции, которая вызывает внешний API. Используй pytest-mock для подмены HTTP-запросов. Проверь: успешный ответ (200), ошибка сервера (500), таймаут (408). Пример кода:
Почему это важно: Реальные запросы к API замедляют прогон тестов в 10-20 раз. Моки позволяют прогонять сотни тестов за секунды. ASI Biont поддерживает подключение к Telegram через API — подробнее на asibiont.com/courses. В вашем проекте принцип тот же: мокайте всё, что не ваш код.
3. Jest-тесты для React-компонентов
Когда использовать: Фронтенд на React, нужно протестировать рендер, состояния и события.
Промт:
Напиши тесты на Jest и React Testing Library для компонента ниже. Проверь: рендер с пропсами по умолчанию, клик по кнопке, отображение loading-состояния. Используй screen.getByRole вместо data-testid.
Кейс: В проекте с 40 компонентами этот промт за день сгенерировал 150 тестов. Ручная проверка заняла бы неделю. Ошибки в UI стали находиться на этапе CI, а не в продакшене.
4. unittest для легаси-кода
Когда использовать: Старый проект на Python 3.8+ без тестов, нужно добавить покрытие без рефакторинга.
Промт:
Создай тесты на unittest для следующего класса. Используй setUp для инициализации объектов. Покрой методы: add(), remove(), find(). Не меняй сигнатуры методов.
Совет: Для легаси важно не сломать существующее поведение. Промт с фразой «не меняй сигнатуры» спасает от регрессии. Я применял это в проекте с 10-летней кодовой базой — тесты прошли с первого раза.
5. Тесты на асинхронные функции (pytest-asyncio)
Когда использовать: Код с async/await, например, веб-сокеты или базы данных.
Промт:
Напиши асинхронные тесты на pytest-asyncio для функции, которая делает запросы через aiohttp. Используй EventLoopPolicy для изоляции. Проверь: успешный ответ, исключение при недоступности сервера.
Почему это сложно: Асинхронные тесты требуют правильного управления event loop. Промт автоматически генерирует корректные декораторы и фикстуры.
6. Тесты с параметризацией
Когда использовать: Одна функция, много входных данных — например, валидация email или расчёт налогов.
Промт:
Создай параметризованные тесты на pytest с помощью @pytest.mark.parametrize. Добавь 10 кейсов: нормальные данные, крайние значения, невалидные строки. Пример функции:
Результат: Один тест превращается в 10 за счёт параметризации. Код становится чище, покрытие — выше. Я сэкономил 3 часа на проекте с 50 функциями валидации.
7. Проверка покрытия кода
Когда использовать: Нужно убедиться, что тесты покрывают все ветки.
Промт:
Проанализируй следующий код и напиши тесты на pytest, чтобы покрыть строки 10-25, 40-55. Используй coverage.py для отчёта. Игнорируй строки с raise.
Лайфхак: Сначала прогоните coverage, затем скормите отчёт AI. Он сам найдёт пробелы и сгенерирует недостающие тесты.
8. Тесты для работы с файлами
Когда использовать: Функции, которые читают/пишут файлы: парсеры CSV, JSON, логов.
Промт:
Напиши тесты на pytest для функции, которая обрабатывает CSV-файл. Используй tmp_path для временных файлов. Проверь: пустой файл, файл с заголовками, бинарные данные.
Кейс: В проекте ETL-пайплайна тесты на файлы ловили 90% багов до деплоя. Промт генерирует фикстуры с tmp_path за секунду.
9. Интеграционные тесты с базой данных (SQLite)
Когда использовать: Код с SQL-запросами, нужно проверить CRUD-операции.
Промт:
Сгенерируй интеграционные тесты на pytest для функций работы с SQLite. Используй in-memory базу и транзакции для отката после каждого теста. Проверь: вставка, выборка, удаление, дубликаты.
Важно: In-memory база в 5 раз быстрее файловой. Промт сам настраивает откат через rollback — тесты не засоряют данные.
10. Тесты на производительность (pytest-benchmark)
Когда использовать: Нужно убедиться, что новая версия кода не медленнее старой.
Промт:
Напиши бенчмарк-тесты на pytest-benchmark для функции сортировки. Сравни производительность с предыдущей версией. Выведи статистику: min, max, среднее время.
Результат: В одном проекте бенчмарки выявили регрессию на 30% — мы откатили коммит до мержа. CI автоматически падал при падении производительности.
Рекомендации по внедрению
| Инструмент | Сценарий | Рекомендуемый промт | Экономия времени |
|---|---|---|---|
| pytest | Unit-тесты функций | №1, №6 | 1-2 часа/день |
| pytest | Интеграционные с API | №2, №5 | 3-4 часа/день |
| Jest | React-компоненты | №3 | 2-3 часа/день |
| unittest | Легаси-код | №4 | 1-2 часа/день |
| pytest + coverage | Покрытие кода | №7 | 30 мин/день |
Заключение
Промты — это не магия, а инструмент. Я использую их ежедневно и сократил время на написание тестов на 60-70%. Начните с промтов №1 и №2 — они покрывают 80% задач. Через неделю вы заметите, что баги перестали доходить до продакшена, а код-ревью стало проходить быстрее.
Главное правило: не копируйте промты слепо. Адаптируйте под свой проект — меняйте названия функций, типы данных, исключения. AI делает 80% работы, но 20% — ваша экспертиза. Тестируйте тесты: прогоняйте их в CI, смотрите на покрытие, фиксите ложные срабатывания.
И помните: хороший тест — тот, который падает, когда код сломан, и проходит, когда код правильный. Промты помогут вам писать именно такие тесты.
Комментарии