слушай.
а вот допустим, у меня есть какой-то метод. он принимает свои зависимости через DI. эти зависимости принимают свои зависимости, так же через DI. и так рекурсивно, несколько уровней.
каждый компонент иерархии по отдельности компактный, single responsibilitiy, его легко юнит-тестировать.
потом есть клиентский код, который из этих кипричиков собирает готовое решение и запускает его. он на вход принимает только литералы (для интеграции с внешними клиентами).
как его правильно тестировать? что он правильно всё собрал? только интеграционный тест, который выполнит всё от и до, и проверит все сайд-эффекты?