Юнит-тесты нисколько не страхуют систему от поломок в разных местах при рефакторинге одного места. Они помогают их выявлять. До запуска самих тестов ты можешь поломать что угодно и где угодно, никто тебя не застрахует.
А страхуют они продакшен от багов, которые в этих разных местах могут повылазить. И хорошо, если это мелкие и не плавающие баги.
А теперь представим ситуацию. Ты переписал код, запустил тесты, а система поплыла в пяти местах. Теперь тебе нужно каждое это место проанализировать и пофиксить баг таким образом, чтобы соблюсти
все требования этих мест. Причем сделать это нужно элегантно, без костылей. Ну ладно, пердячим паром как то удалось. Запускаем тесты, а с новым фиксом в семи других местах опять всё поплыло. И так далее.
Так чем помогают тут юнит-тесты? Выявлять баги? Это вполне решаемо функциональными тестами. Ускоряют фикс? Ничуть. И если возникнет такая ситуация, то ненароком вспомнишь про старую добрую процедурку и копипаст покажется таким близким и родным )))
От того и смотрят люди последнее время в сторону функционального и модульного программирования. Чтобы уйти от этой скрытой связанности. Где все строится на зависимостях, а значит все зависит от всего.
Утрирую конечно.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.