我正在构建一个WCF服务,它接收外部IP上的请求并将它们转换为通过NServiceBus发送的消息。
我的一个单元测试调用Global.Application_Start()
,它执行应用程序的配置,然后尝试将Web服务解析为
验证容器是否可以构建所有依赖项。
当我在Windows服务中使用Configure.With()
时,这可以正常工作,但是
在这种情况下对Configure.WithWeb()
的调用失败(可能是因为“bin”
目录不存在?)。
是否可以对调用Configure.WithWeb()
的方法进行单元测试,或者是否应该
只使用带有目录名的Configure.With()
的重载?
答案 0 :(得分:0)
我创建了一个新的启动类:
public class NonWebRunAtStartup : IRunAtStartup
{
public void InitializeInfrastructure(object container)
{
Configure.With()
.StructureMapBuilder((IContainer) container)
.Log4Net()
.XmlSerializer()
.MsmqTransport()
.UnicastBus()
.LoadMessageHandlers()
.CreateBus()
.Start();
}
}
然后在我的测试中,我确保我的IOC容器会使用这个而不是通常的基于Web的容器,将其添加到我的测试中:
IoC.Register<IRunAtStartup, NonWebRunAtStartup>();
这让我遇到了一个不同的错误,我还在讨论这个错误,我会问一个单独的问题(现在NSB无法加载NServiceBus.Core.dll中的程序集,例如Antlr3.Runtime .DLL)。