Здравствуйте, Sinix, Вы писали:
I>>Есть целая методология TDD, которая именно юнит тестирование(и как следствие DI) ставит во главу угла, она популярная, модная, молодежная и все такое. S>Она отлично работает для инфраструктуры, почти для любого масштаба, неплохо работает для мелочёвки и абсолютно не работает даже для средних проектов. Чтоб было понятно, что такое средний проект: представь себе типовой биз-кейз в виде 20-страничного документа 12 шрифтом, в котором 90% текста — не вода, а логика, причём высокоуровневая, без расписывания до отдельных инструкций.
Вот прекрасно всё работает, в условиях ещё более жёстких. Более того, без TDD всё очень плохо, так как про эту логику на 100500 листах 12-шрифтом через смену одного поколения разработчиков (2-3 года) никто знать даже не будет.
В случае TDD останутся тесты, которые хотя бы сломаются при "невинном" рефакторинге.
А если система ещё и сложная, с внешними зависимостями, то вообще вариантов никаких нет. Только TDD с mock'ами поведения внешних сервисов.