Я использовал Unity для своего последнего проекта и в целом остался доволен. Но тесты заставляют меня думать, что я могу использовать Simple Injector для своего следующего проекта.
Однако у Simple Injector, похоже, нет интерфейса для своего класса Container
. Это означает, что всякий раз, когда я хочу использовать контейнер в методе, я не могу имитировать контейнер для модульного тестирования.
Меня смущает, как инструмент, который действительно функционирует на основе интерфейсов, сам не создает интерфейс для контейнера. Я знаю, что классические методы внедрения зависимостей не нуждаются в контейнере больше, чем для запуска. (В остальном используется инъекция конструктора.) Но я обнаружил, что, когда резина попадает в дорогу, это не всегда может быть правдой. Иногда контейнер нужен просто для того, чтобы «разрешить» код.
Если я выберу Simple Injector, то этот код, похоже, станет сложнее для модульного тестирования.
Я прав? Или я что-то упускаю?