NServiceBus处理程序单元测试的依赖注入

时间:2012-06-08 21:40:03

标签: c# unit-testing dependency-injection nservicebus

这就是你应该如何为NServiceBus处理程序注入依赖项来测试它:

Test.Handler<YourMessageHandler>()
  .WithExternalDependencies(h => h.Dependency = yourObj)

http://nservicebus.com/UnitTesting.aspx

但是这意味着我的Dependency对象引用应该是公开的,我不太喜欢。是否有任何方法可以将其保密,并将其分配给构造函数,以便实现只应通过处理程序构造函数传递?

由于

1 个答案:

答案 0 :(得分:5)

您可以使用以下语法来使用构造函数注入:

 Test.Handler<YourMessageHandler>(bus => new YourMessageHandler(dep1, dep2))

其中dep1和dep2很可能只是你的模拟框架为你准备的一些存根或模拟。

- 由Udi Dahan从这里更新:

您可以通过Test.Bus访问模拟的总线实例。