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

AI-генерация тестов: unit, integration, e2e. TDD с AI-ассистентом

Категория
Практика
Сложность
Средний → Продвинутый

Что это

AI отлично генерирует тесты — это одно из самых полезных применений для вайбкодера. Модели понимают структуру кода и могут создать тест-сьюты, покрывающие edge cases, о которых вы бы не подумали.

Виды тестов с AI

Unit-тесты

Дайте функцию → получите тесты для всех edge cases:

Напиши unit-тесты для функции calculate_subscription_cost.
Покрой: обычный случай, нулевую цену, отрицательную,
пустой billing_cycle, невалидную дату.
Фреймворк: pytest.

Integration-тесты

Напиши integration-тесты для API /api/subscriptions:
- POST: создание подписки (валидные/невалидные данные)
- GET: получение списка (с фильтрами, пустой список)
- DELETE: удаление (существующей/несуществующей)
Стек: FastAPI + pytest + httpx.

E2E-тесты

Напиши Playwright-тест для регистрации:
1. Открыть /register
2. Заполнить email и пароль
3. Нажать "Зарегистрироваться"
4. Проверить редирект на /dashboard
5. Проверить приветствие с именем

TDD с AI

AI ускоряет Test-Driven Development:

1. Опиши фичу              → "Добавь команду /stats в бота"
2. Попроси написать тесты   → Тесты ДО кода
3. Запусти                  → Тесты падают (red)
4. Попроси реализацию       → AI пишет код
5. Запусти                  → Тесты проходят (green)
6. Рефакторинг              → AI оптимизирует

Промпт для генерации тестов

Напиши тесты для [файл/функция].
Требования:
- Фреймворк: [pytest / jest / vitest]
- Покрой: happy path, edge cases, error handling
- Мокай внешние зависимости
- Каждый тест — один assert
- Понятные имена тестов на английском

Чего не делать

ОшибкаПочему плохоЧто делать
Не запускать тестыТесты могут быть синтаксически неверныВсегда запускать и проверять
Тривиальные тестыassert 1 == 1 — бесполезноТестировать реальную логику
Нет edge casesПропущены граничные условияЯвно просить edge cases
Мокать всё подрядТест не проверяет реальное поведениеМокать только внешние зависимости

Инструменты

ИнструментДля чего
Claude CodeГенерация + запуск тестов в одном цикле
CursorГенерация тестов в контексте файла
Playwright MCPE2E-тестирование через агента
pytest / jest / vitestФреймворки для запуска

Ссылки

Связанное

Редактировать на GitHub →