Проекты с DI, дебажить сложно и в них сложно разбираться.
Понаписывают рантайм подмену интерфесов, но на практике вообще не встречал что бы в рантайме делали подмену одних сервисов на другие. Подмену можно было сделать напрямую в коде без всякого DI.
DI однозначно отлично подойдет для приложений где приложение устанавливается к потребителю локально и потребитель сам пишет для себя плагины, исспользуя указанное апи. (вариант: приложение — это веб сервик к которому пишут плагины сторонние люди, отпадает по секурити.)
Для сервисной архитектуры, по тестам: нафиг моки. Только усложняют жизнь и вводят в заблуждение. Надо тестировать на реальных данных, тестируя реальный код, а не код с костылями и бинтами. Сгенерил бд с тестовыми данными со скриптов. Прогнал по юнит и интеграционным тестам, почитал логи — увидел что апи соответствует спеки и норм.
Підтримати Україну у боротьбі з країною-терористом.