Castle Windsor是否有办法查看IContainer是否可以解析所有实例。
我的Nunit Test DLL中有一个类。我想做的是测试IWindsorContainer
是否可以解析所有已注册的安装程序。
如果没有,那么解析器的测试用例应该失败。
我现在上课的是
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
是否有任何问题。
编辑:我想我可能已找到问题,但需要测试更多...... 感谢
答案 0 :(得分:1)
烨。 Windsor为此目的拥有诊断子系统。 The documentation has all the details.
另外,我建议您将注册码封装在installers。
中