Подтвердить что ты не робот

Как я могу unit test мой контроллер убедиться, что Windsor может разрешать зависимости при использовании PerWebRequestLifestyle

У меня есть следующее unit test в моем приложении:

    [TestMethod]
    public void Windsor_Can_Resolve_HomeController_Dependencies()
    {
        // Setup
        WindsorContainer container = new WindsorContainer();
        container.Install(FromAssembly.Containing<HomeController>());

        // Act
        container.Kernel.Resolve(typeof(HomeController));
    }

Точка зрения заключается в том, чтобы убедиться, что у меня нет каких-либо проблем с конфигурацией Windsor, которые я не буду реализовывать до тех пор, пока не получу доступ к действию на этом контроллере. Проблема заключается в том, что все мои регистрации объектов зарегистрированы как PerWebRequestLifestyle, поэтому я не получаю проблем с тем, что мой Контекст данных сущности Entity Framery разделяется между веб-запросами (что вызывает ошибки при выполнении нескольких действий).

Однако всякий раз, когда я запускаю этот unit test, я получаю следующее исключение:

System.InvalidOperationException: HttpContext.Current имеет значение null. PerWebRequestLifestyle можно использовать только в ASP.Net

Как я могу протестировать этот сценарий без изменения образа моих команд регистрации объектов?

4b9b3361

Ответ 1

Я не знаю, можете ли вы использовать PerWebRequestLifestyle вне ASP.NET(MVC) (я не думаю, что вы можете), но вы можете использовать IContributeComponentModelConstruction, чтобы изменить стиль жизни компонентов, когда они зарегистрированы.

Это позволит вам (интеграции) протестировать контейнер без изменения каких-либо из ваших установщиков.