Я достаточно часто сталкиваюсь с мнением, что высокое покрытие кода тестами усложняет процессы рефакторинга и делает архитектуру менее гибкой и расширяемой. Изменение каждой строчки кода ведет к переписыванию еще и нескольких связанных тестов - и с таким лютым оверхедом достаточно тяжело спорить. Аргумент про то, что этот же рефакторинг становится гораздо более безопасным, тоже не во всех ситуациях прокатит. Дядюшка Боб набрасывает очень правильные вещи на эту же тему и рассуждает про то, как надо использовать TDD, чтобы не испортить весь дизайн своего проекта.
http://blog.cleancoder.com/uncle-bob/2017/03/03/TDD-Harms-Architecture.html#tdd #architecture