Если вы приедете в Виндзор с Spring / Spring.net, вы обнаружите, что есть ряд вещей, с которыми эти проекты не согласны.Это одна из них.Как адвокат Виндзора, я бы никогда не использовал что-то вроде SpringDstractPependencyInjectionSpringContextTests.Впрыскивать вещи в тест просто кажется неправильным, но опять же, как я уже сказал, я предвзят.
Если вы хотите провести интеграционный тест, просто создайте новый экземпляр контейнера, добавьте все необходимые компоненты,и запустите все, что вы хотите протестировать, например:
[Test]
public void TestComponentThatDependsOnA() {
var container = new WindsorContainer();
container.Register(Component.For<MyComponentA>());
container.Register(Component.For<ComponentThatDependsOnA>());
var a = container.Resolve<ComponentThatDependsOnA>();
var result = a.DoSomething();
Assert.AreEqual("ok", result);
}
Если у вас есть регистрации, аккуратно упакованные в установщики (как вы должны), вы можете использовать их в своих тестах, делая тесты более краткими.
Если у вас есть XML-конфигурация, вы можете легко загрузить ее с помощью Configuration.FromXmlFile ().
Кроме того, здесь нет необходимости использовать Common Service Locator.
Для некоторых интеграционных тестов также полезен контейнер для автоматической имитации , который будет автоматически макетировать сервисы (если, конечно, вы не переопределите их для конкретных).