Если в вашем коде имеется тесная связь, вам будет сложно тестировать каждую часть вашего приложения изолированно, и очень трудно будет смоделировать зависимости.
Так что, если ваш контроллер зависит от SomeService
, извлеките новый интерфейс ISomeService
и зависите от этого. Именно здесь использование контейнера IoC для внедрения ваших зависимостей также поможет вам и будет продвигать слабосвязанный код.
В типичном n-уровневом приложении MVC мы бы проводили модульное тестирование нашего уровня доступа к данным, уровня обслуживания (имитация зависимости уровня доступа к данным), контроллеров MVC (имитация зависимости уровня сервиса).
Я не склонен проверять свои виды / модели зрения, потому что они все равно довольно тупые.