gif
Ситуация - в кодовой базе нашелся деффект который уже распостранился по репозиторию, и починить его одиним комитом нельзя - нужны последовательные рефакторинги закрывающие кейсы по одному.
Тут я первые услышал (от sonnet) про тестирование методом храповика (изображен на гифке).
Прием выглядит так - пишем тесты которые проверяют что баг исправлен, они падают, и в качестве финального ассерта мы проверяем количество упавших проверок.
Идея в том чтобы пока идет фикс не дать другим повторить ошибку в новом коде по аналогии со старым кодом, но при этом проходить тесты с уже известными кейсами которые сейчас в процессе исправления. Т.е. двигаться в сторону исправлений можно, а в сторону умножения бага нет
Довольно интересный паттерн, правда применить его получится не всегда. Тест отлавливающий аналогичные но еще не существубщие кейсы сложно написать (как правило это что-то на регулярках или анализе деревьев)
Post #626
810