Читать нельзя рефакторить: Jinja2-разметка для тестов, devtools и AI-агентов
Тезисы
Тесты с большими входными данными быстро становятся такими, что читать больно, а рефакторить страшно. Фикстуры с конфигами, фрагментами кода и наборами файлов разрастаются, обрастают собственной логикой, а потом важный сценарий приходится собирать по кускам: данные в одном месте, проверки в другом, между ними хэлперы и golden-файлы.

Михаил расскажет, как они сделали небольшой DSL поверх Jinja2 и стали размечать смысл прямо внутри тестовых данных. Шаблон превращается в спецификацию теста: входные данные и ожидания описаны вместе, поэтому сценарий не приходится собирать по частям.

В докладе будет немного внутренностей Jinja2 и Pytest, примеры из тестирования инструментов анализа кода и отдельная часть про "тесты на тесты": как писать такие спеки до реализации фичи и проверять их внешним эталонным решением. В конце отдадим дань эпохе и порассуждаем, может ли похожая разметка быть полезна LLM-агентам для навигации по коду.
Тесты с большими входными данными быстро становятся такими, что читать больно, а рефакторить страшно. Фикстуры с конфигами, фрагментами кода и наборами файлов разрастаются, обрастают собственной логикой, а потом важный сценарий приходится собирать по кускам: данные в одном месте, проверки в другом, между ними хэлперы и golden-файлы.

Михаил расскажет, как они сделали небольшой DSL поверх Jinja2 и стали размечать смысл прямо внутри тестовых данных. Шаблон превращается в спецификацию теста: входные данные и ожидания описаны вместе, поэтому сценарий не приходится собирать по частям.

В докладе будет немного внутренностей Jinja2 и Pytest, примеры из тестирования инструментов анализа кода и отдельная часть про "тесты на тесты": как писать такие спеки до реализации фичи и проверять их внешним эталонным решением. В конце отдадим дань эпохе и порассуждаем, может ли похожая разметка быть полезна LLM-агентам для навигации по коду.
Информация о спикере
Михаил Шишацкий
Старший разработчик, Яндекс
Занимаюсь навигацией по коду в Яндексе, Codebase Knowledge Graph и Code Coverage. Развиваю инструменты, которые помогают разработчикам понимать большие кодовые базы: находить определения и использования, строить связи между файлами, получать полезную обратную связь в процессе разработки.

Интересуюсь Developer Experience, анализом кода, тестированием сложных инструментов и тем, как AI-агенты могут работать с большими кодовыми базами.
  • Михаил Шишацкий
    Старший разработчик, Яндекс
    Занимаюсь навигацией по коду в Яндексе, Codebase Knowledge Graph и Code Coverage. Развиваю инструменты, которые помогают разработчикам понимать большие кодовые базы: находить определения и использования, строить связи между файлами, получать полезную обратную связь в процессе разработки.

    Интересуюсь Developer Experience, анализом кода, тестированием сложных инструментов и тем, как AI-агенты могут работать с большими кодовыми базами.
Все доклады трека