C>Вот прекрасно всё работает, в условиях ещё более жёстких.
Так мы не про сами тесты, а про "TDD, которая именно юнит тестирование(и как следствие DI) ставит во главу угла".
Излишний радикализм с отдельными тестами на каждую мелочь на практике поднимает стоимость сопровождения раза в два из-за колоссального объёма кода, который приходится править при изменении бизнес-правил у очередного заказчика (что скорее обыденность, чем что-то исключительное). Комбинация "юнит-тесты где надо, интеграционные тесты для остального + ассерты везде" в этом плане намного дешевле.
C>А если система ещё и сложная, с внешними зависимостями, то вообще вариантов никаких нет. Только TDD с mock'ами поведения внешних сервисов.
Не-не-не, для сложных систем тру-TDD не работает. Получается ИБД в чистом виде. Везде красота и благолепие, тесты зеленеют, одни внедренцы без валерьянки к клиентам не ездят.