В настоящее время у меня есть фабрика контроллеров Windsor, которая работает хорошо.Однако я немного меняю свои контроллеры и заставляю Виндзор создавать дополнительные данные для контроллеров.Я забыл обновить свой класс установщика, и он не удался.
Таким образом, я понял, что это идеальный экземпляр для модульного тестирования, поэтому каждый раз, когда я запускаю свои модульные тесты, он проверяет, что Windsor настроен правильно.*
Таким образом, я создал следующий модульный тест:
[TestMethod]
public void Windsor_Can_Resolve_HomeController_Dependencies()
{
// Setup
WindsorContainer container = new WindsorContainer();
// Act
HomeController controller = (HomeController)container.Kernel.Resolve(typeof(HomeController));
}
Это точно такой же код, который существует в моем методе WindsorControllerFactory.GetControllerInstance()
, поэтому я не уверен, почему это не работает.Когда это работает, я получаю:
Test method MyApp.Tests.Controllers.HomeControllerTest.Windsor_Can_Resolve_HomeController_Dependencies threw exception:
Castle.MicroKernel.ComponentNotFoundException: No component for supporting the service MyApp.Controllers.HomeController was found
Я не уверен, как справиться с этим.Единственное, о чем я могу думать, это то, что, поскольку он находится в моем тестовом проекте, а не в моем проекте Asp.net MVC, он не может автоматически выбирать мой класс CommandAndQueryInstaller
, который содержит все мои регистрации типа windsor.
Какой совет по модульному тестированию конфигурации зависимости виндзора?