раздел 02

Тесты: проверка что работает

Линтер ловит формальные ошибки. Но он не знает, делает ли код то, что нужно. Для этого есть тесты.

Что такое тест простыми словами

Тест - это маленькая программа, которая проверяет другую программу. Она говорит: «если дать вот это, должно получиться вот то». Запускаем - сходится или нет.

Пример на словах: есть функция, которая складывает два числа. Тест проверяет, что два плюс два даёт четыре. Если функцию случайно сломали, тест сразу покажет, что результат не тот.

Зелёные тесты - сигнал, что ничего не сломалось. Красный тест - значит код делает не то, что от него ждут, и его надо чинить.

Зелёный и красный

Когда тесты проходят, их называют зелёными - всё хорошо. Когда тест не сходится, он красный - есть проблема. Это и есть язык, на котором тесты говорят с агентом: зелено - двигаемся дальше, красно - чиним.

Какие бывают тесты

Юнит-тест
Проверяет одну маленькую часть - например, одну функцию. Быстрый и точечный.
Смоук-тест
Проверяет, что главное работает после выкладки: сайт открывается, кнопка нажимается, данные приходят.

Type-checker - проверка ещё до запуска

Есть отдельный датчик - type-checker. Он ловит ошибки несоответствия данных ещё до того, как код запустится: например, туда, где ждут число, случайно передали текст. В TypeScript это встроено, в Python это делает mypy. Полезно знать, что он есть, но настраивать его новичку не обязательно с первого дня.

Как агент пишет и прогоняет тесты

Тесты тоже можно поручить агенту. Достаточно попросить «напиши тесты на эту функцию» - и он создаст их сам. Запуск выглядит примерно так:

npm test

Для Python:

pytest

Агент запускает тесты, видит красный, понимает, что сломалось, чинит, запускает снова - пока всё не станет зелёным.