Помогает применять TDD при разработке функций и исправлении ошибок: сначала написать тест, увидеть ожидаемое падение, затем добавить минимальный код и проверить, что тесты проходят. Так тест подтверждает нужное поведение и помогает не допустить регрессий.
Возможности
- Задаёт цикл RED-GREEN-REFACTOR: падающий тест → минимальная реализация → очистка кода при зелёных тестах.
- Требует проверять, что тест падает именно из-за отсутствующей функции, а не из-за ошибки в тесте.
- Рекомендует тестировать реальное поведение, а не моки; проверять одно поведение за тест и давать тестам понятные имена.
- Требует после изменения запускать весь набор тестов проекта, а не только тестовый файл.
- Даёт чек-лист проверки и подсказки, если тест сложно написать, он требует слишком много моков или имеет сложную подготовку.
Когда использовать
- При реализации новой функции или изменении поведения.
- При исправлении ошибки: сначала написать тест, который её воспроизводит.
- При рефакторинге — чтобы проверить, что поведение не изменилось.
- Исключения — временные прототипы, сгенерированный код и файлы конфигурации; их следует обсудить с человеком-партнёром.
Примеры
Запустить тестовый файл, чтобы проверить падение, а затем убедиться, что тест проходит:
npm test path/to/test.test.ts
Тест для исправления ошибки: пустой email должен приводить к сообщению Email required.
test('rejects empty email', async () => {
const result = await submitForm({ email: '' });
expect(result.error).toBe('Email required');
});
Установка
npx skills add https://github.com/obra/superpowers --skill test-driven-development