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