Введение в проблему
Современное использование ИИ для генерации кода фронтенда привело к новым вызовам в области тестирования. Хотя ИИ может генерировать большой объём кода быстро, основной проблемой становится не скорость, а уверенность в его качестве. Одним из ключевых решений этой проблемы является введение философии TWD (Test While Developing), которая позволяет создавать определённые UI-тесты, где разработчик полностью контролирует окружение, имитирует любые сценарии и избегает нестабильного поведения.
Проблема: ограничения ИИ в генерации тестов
ИИ может писать тесты, но эти тесты не всегда соответствуют конкретным потребностям проекта. ИИ не знает, как устроен проект, что должно быть имитировано, как работает аутентификация и что такое "хорошие тесты" в данном кодовой базе. В результате сгенерированные тесты часто не соответствуют используемым в проекте шаблонам, имитируют неправильные компоненты и пропускают важные потоки.
Решение: TWD и навыки для ИИ
Чтобы решить эту проблему, было введено понятие TWD-навыков внутри плагина Claude Code. Эти навыки дают ИИ контекст о проекте, правила для следования и шаблоны для повторного использования. Вместо общих тестов, ИИ генерирует тесты, которые действительно подходят кодовой базе проекта.
Настройка TWD: первый шаг
Все начинается с настройки TWD, которая проводится с помощью команды /twd:setup. Эта интерактивная настройка анализирует проект и создает файл .claude/twd-patterns.md, который становится основным источником информации о том, как должны быть написаны тесты.
Что делает настройка TWD
Настройка TWD обнаруживает используемый фреймворк, конфигурацию Vite, точки входа и настройку CSS. Она также задает вопросы об аутентификации и разрешениях, структуре API, внешних зависимостях и управлении состоянием. На основе полученной информации она генерирует конфигурацию тестирования, специфичную для проекта, и может даже установить и настроить TWD автоматически.
Практическое применение
Для начала работы с TWD достаточно запустить команду /twd:setup. После этого агент начинает понимать проект, задавая правильные вопросы для понимания того, как работает приложение и обнаруживая конфигурацию фронтенда. Это включает в себя определение того, что должно быть имитировано, как работает аутентификация и где находятся ключевые компоненты.