Здравствуйте, artelk, Вы писали:
A>Тут не без нюансов. Если в рамках рефакторинга меняется дизайн приложения (что чаще всего и бывает), то это требует изменений в юнит-тестах. И обещанных гарантий фиксации поведения уже нет.
A>На одном из проектов нам в наследство досталась куча сильносвязного кода с багами и без тестов. Было решено сделать глубокий рефакторинг. Из соображений "зафиксировать текущее поведение" заказчик решил покрыть все тестами. Более бессмысленного занятия я не припомню...
Потому что не надо юнит-тесты пихать в все щели.
В вашем случае помог бы behaviour(или как он правильно называется?)-подход: на "верхние" интерфейсы пишутся тестовые сценарии, прогоняющие типичные use-cases, юнит-тесты выкидываются и дальше все потроха рефакторятся с единственной оглядкой на проходжение сценариев.