раздел 02
Тесты: проверка что работает
Линтер ловит формальные ошибки. Но он не знает, делает ли код то, что нужно. Для этого есть тесты.
Что такое тест простыми словами
Тест - это маленькая программа, которая проверяет другую программу. Она говорит: «если дать вот это, должно получиться вот то». Запускаем - сходится или нет.
Пример на словах: есть функция, которая складывает два числа. Тест проверяет, что два плюс два даёт четыре. Если функцию случайно сломали, тест сразу покажет, что результат не тот.
Зелёные тесты - сигнал, что ничего не сломалось. Красный тест - значит код делает не то, что от него ждут, и его надо чинить.
Зелёный и красный
Когда тесты проходят, их называют зелёными - всё хорошо. Когда тест не сходится, он красный - есть проблема. Это и есть язык, на котором тесты говорят с агентом: зелено - двигаемся дальше, красно - чиним.
Какие бывают тесты
Type-checker - проверка ещё до запуска
Есть отдельный датчик - type-checker. Он ловит ошибки несоответствия данных ещё до того, как код запустится: например, туда, где ждут число, случайно передали текст. В TypeScript это встроено, в Python это делает mypy. Полезно знать, что он есть, но настраивать его новичку не обязательно с первого дня.
Как агент пишет и прогоняет тесты
Тесты тоже можно поручить агенту. Достаточно попросить «напиши тесты на эту функцию» - и он создаст их сам. Запуск выглядит примерно так:
npm test
Для Python:
pytest
Агент запускает тесты, видит красный, понимает, что сломалось, чинит, запускает снова - пока всё не станет зелёным.