检查 Castle.Windsor.IWindsorContainer 是否可以解决
Check If Castle.Windsor.IWindsorContainer can Resolve
在 Castle Windsor 中有没有办法查看 IContainer 是否可以解析所有实例。
我的 Nunit 测试 DLL 中有一个 class。我想做的是测试 IWindsorContainer
是否可以解析所有已注册的安装程序。
如果不是,那么解析器的测试用例应该会失败。
我现在的class是
using Castle.MicroKernel.Registration;
using Castle.Windsor;
using NUnit.Framework;
using System;
namespace UnitTest
{
public class IOCBaseTest<T> : IDisposable
{
protected IWindsorContainer _container;
public IOCBaseTest()
{
_container = new WindsorContainer();
_container.Register(Classes.FromAssemblyNamed("IOC").InNamespace("IOC.Installers.Business", false));
_container.Register(Classes.FromAssemblyNamed("UnitTest.Moq"));
}
[TestCase]
public void TestWetherIOCContainerIsCorrectlySetup()
{
var _handler = _container.Kernel.GetHandler(typeof(T)).CurrentState;
Assert.AreEqual(_handler, Castle.MicroKernel.HandlerState.Valid);
}
[TestFixtureSetUp()]
public abstract void SetupTests();
public void Dispose()
{
_container.Dispose();
}
}
}
我知道当我调试 IWindsorContainer
时,我可以查看是否存在可能配置错误的解析器。但是我如何访问它?或者有没有办法测试 _container
是否有任何问题。
编辑:我想我可能已经找到了问题,但需要进行更多测试...
谢谢
是的。为此,温莎有诊断子系统。 The documentation has all the details.
此外,我建议将您的注册码封装在 installers 中。
在 Castle Windsor 中有没有办法查看 IContainer 是否可以解析所有实例。
我的 Nunit 测试 DLL 中有一个 class。我想做的是测试 IWindsorContainer
是否可以解析所有已注册的安装程序。
如果不是,那么解析器的测试用例应该会失败。
我现在的class是
using Castle.MicroKernel.Registration;
using Castle.Windsor;
using NUnit.Framework;
using System;
namespace UnitTest
{
public class IOCBaseTest<T> : IDisposable
{
protected IWindsorContainer _container;
public IOCBaseTest()
{
_container = new WindsorContainer();
_container.Register(Classes.FromAssemblyNamed("IOC").InNamespace("IOC.Installers.Business", false));
_container.Register(Classes.FromAssemblyNamed("UnitTest.Moq"));
}
[TestCase]
public void TestWetherIOCContainerIsCorrectlySetup()
{
var _handler = _container.Kernel.GetHandler(typeof(T)).CurrentState;
Assert.AreEqual(_handler, Castle.MicroKernel.HandlerState.Valid);
}
[TestFixtureSetUp()]
public abstract void SetupTests();
public void Dispose()
{
_container.Dispose();
}
}
}
我知道当我调试 IWindsorContainer
时,我可以查看是否存在可能配置错误的解析器。但是我如何访问它?或者有没有办法测试 _container
是否有任何问题。
编辑:我想我可能已经找到了问题,但需要进行更多测试... 谢谢
是的。为此,温莎有诊断子系统。 The documentation has all the details.
此外,我建议将您的注册码封装在 installers 中。