如何对 NServiceBus.Configure.WithWeb() 进行单元测试?
我正在构建一个 WCF 服务,该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息。
我的一个单元测试调用 Global.Application_Start(),它执行应用程序的配置,然后尝试将 Web 服务解析为 验证容器是否可以构建所有依赖项。
当我在 Windows 服务中使用 Configure.With()
时,这工作正常,但是 在这种情况下,对 Configure.WithWeb()
的调用失败(大概是因为“bin” 目录不存在?)。
是否可以对调用 Configure.WithWeb()
的方法进行单元测试,或者我应该 只需使用带有目录名称的 Configure.With()
重载?
I'm building a WCF service that receives requests on an external IP and translates them into messages that are sent via NServiceBus.
One of my unit tests invokes Global.Application_Start()
, which performs the configuration of the application, and then attempts to resolve the web service to
validate that the container can build up all of the dependencies.
This works fine when I'm using Configure.With()
in my windows services, but
the call to Configure.WithWeb()
fails in this context (presumably because the "bin"
directory does not exist?).
Is it possible to unit test a method that calls Configure.WithWeb()
, or should I
just use the overload for Configure.With()
that takes a directory name?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我创建了一个新的启动类,如下所示:
然后在我的测试中,我通过将其添加到我的测试中,确保我的 IOC 容器将使用这个启动类,而不是通常的基于 Web 的启动类:
这让我遇到了不同的错误,我'我仍在与之斗争,我将作为一个单独的问题提出(现在 NSB 无法加载 NServiceBus.Core.dll 中的程序集,例如 Antlr3.Runtime.dll)。
I created a new startup class like so:
Then in my test, I ensured that my IOC container would use this one instead of the usual web-based one by adding this to my test:
This got me to a different error, which I'm still fighting with, which I'll ask as a separate question (now NSB can't load assemblies that are in NServiceBus.Core.dll, such as Antlr3.Runtime.dll).