Я думаю, что использование IoC Framework для тестов - это идеальный способ сделать это.Фактически, именно поэтому IoC существовал в первую очередь, а затем появились фреймворки.Guice (платформа Google DI-инъекций Java) на самом деле поддерживает эту функцию, когда вы передаете в Модуль с производственными привязками, а затем передаете TestModule, который может переопределить определенные привязки с помощью mockobjects, а затем вы можете выполнить тестирование.Мы занимались этим, и это было очень чисто в течение длительного времени в Java.Я сейчас вхожу в себя, пытаясь заставить мои тесты перепривязывать вещи, сохраняя при этом оставшиеся привязки ....
Существуют также фреймворки, такие как AtUnit, где вы должны использовать фреймворк DI для тестированияобъекты и НЕ используют новое ключевое слово вообще. (к сожалению, я пока не вижу порт этой платформы для C # land :().
ПРИМЕЧАНИЕ. Причина этого желательна, когда люди добавляютновое связывание в производственном модуле, а затем использовать его в одной из моих тестируемых систем, оно не перестает работать с исключениями nullpointer, потому что интерфейс не был связан в тесте. люди продолжают добавлять, а тест продолжает работать. На мой взгляд, выследует использовать только ключевое слово «new» с dtos и тому подобное, и вся логика biz должна быть связана с DI, что позволяет легко добавлять тесты сейчас или в более поздний момент, а также довольно легко (хотя я сам сначала добавляю тесты).