Скилл
Quality
Тестирование
Пирамида тестирования, фреймворки (Vitest, Playwright, bats), правила моков, Live Smoke-Test Gate для raw SQL. Для написания и ревью тестов.
Обзор
Testing — справочный навык, загружаемый разработчиками и ревьюерами при написании или проверке тестов. Определяет пирамиду тестирования, рекомендуемые фреймворки по уровням и строгие правила мокирования, которые предотвращают хрупкие или вводящие в заблуждение тесты.
Пирамида тестирования
- Юнит-тесты (70%) — тестируют отдельные функции и классы в изоляции. Мокают все внешние зависимости. Основа тестирования с самым быстрым циклом обратной связи.
- Интеграционные тесты (20%) — тестируют взаимодействие между модулями, сервисами и базами данных. Проверяют совместную работу компонентов.
- E2E-тесты (10%) — тестируют критические пользовательские сценарии целиком. Самые дорогие в написании и поддержке — фокус на самых ценных путях.
Рекомендуемые фреймворки
- Бэкенд — Jest или Vitest для Node.js/TypeScript, pytest для Python
- Фронтенд — Vitest с React Testing Library для компонентных тестов
- E2E — Playwright (предпочтительно) или Cypress
Правила мокирования
- Мокайте внешние API (Stripe, AWS, сторонние сервисы) — никогда не обращайтесь к реальным сервисам в тестах
- Мокайте БД в юнит-тестах — реальные базы только в интеграционных
- Используйте dependency injection для явного мокирования
- Никогда не подгоняйте данные моков, чтобы тесты прошли
- Мокайте на границах, не внутри бизнес-логики
Продвинутые шлюзы тестирования
- Live Smoke-Test Gate — обязателен для raw SQL, кросс-datasource кода, миграций, queue/webhook. Моки не ловят запросы к неправильному клиенту, которые компилируются, но бьют не в ту БД. Запустите запрос на реальном datasource и запишите результат.
- Live Docker Smoke Test — обязателен для кросс-контейнерных HTTP/RPC вызовов, volume-mounted конфигов, путей файловой системы. 241 юнит-тест может пройти, пока 3 рантайм-бага прячутся в exec-битах, хостнеймах и SSL-конфиге.
- Обнаружение тихих сбоев — для подпроцессов с exit 0 при ошибке (LLM CLI, облачные инструменты). Парсите структурированный вывод вместо проверки exit-кода.
- Spec-Lint тесты — regex-проверки markdown-контрактов в
commands/*.md. Защита от тихой регрессии спецификаций команд. - Тестирование shell-скриптов (bats-core) — красно-зелёная дисциплина для bash-скриптов. Изоляция через
BATS_TEST_TMPDIR+ редирект HOME. Fixture-builder, SUCCESS-marker, guard-тесты для деструктивных флагов. - Post-Deploy Smoke Gate — при смене пользователя деплоя прогоните полный цикл от имени нового пользователя до переключения cron/systemd.
Когда используется
Загружается при /dr-do (TDD-цикл: тест, реализация, рефакторинг) и при /dr-qa (ревью покрытия и качества тестов). Справочный навык без привязки к модели.