我如何单元测试NServiceBus.Configure.WithWeb()?

时间:2010-09-20 15:05:48

标签: c# wcf unit-testing nservicebus

我正在构建一个WCF服务,它接收外部IP上的请求并将它们转换为通过NServiceBus发送的消息。

我的一个单元测试调用Global.Application_Start(),它执行应用程序的配置,然后尝试将Web服务解析为 验证容器是否可以构建所有依赖项。

当我在Windows服务中使用Configure.With()时,这可以正常工作,但是 在这种情况下对Configure.WithWeb()的调用失败(可能是因为“bin” 目录不存在?)。

是否可以对调用Configure.WithWeb()的方法进行单元测试,或者是否应该 只使用带有目录名的Configure.With()的重载?

1 个答案:

答案 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)。