Удаление или перезапись компонента из контейнера Windsor

Я пытаюсь выполнить, казалось бы, супер простую вещь: из моего модульного теста я хочу заменить решаемый тип на фиктивный / поддельный объект.

Например: конфиг xml заявляет, что компонент службы IInterface должен разрешить в ClassA. Это нормально, но из моего модульного теста я хочу вместо этого разрешить тип в FakeClassA. Я не могу использовать container.AddComponent для этого, так как "для данного ключа уже зарегистрирован компонент".

1 ответ

IKernel имеет метод RemoveComponent.

Но для модульных тестов рекомендуется вообще не использовать контейнер, или если настройка теста становится слишком плотной из-за зависимостей, используйте AutoMockingContainer.

Вот еще одна (более обновленная) реализация.

Другие вопросы по тегам