这就是你应该如何为NServiceBus处理程序注入依赖项来测试它:
Test.Handler<YourMessageHandler>()
.WithExternalDependencies(h => h.Dependency = yourObj)
(http://nservicebus.com/UnitTesting.aspx)
但是这意味着我的Dependency对象引用应该是公开的,我不太喜欢。是否有任何方法可以将其保密,并将其分配给构造函数,以便实现只应通过处理程序构造函数传递?
由于
答案 0 :(得分:5)
您可以使用以下语法来使用构造函数注入:
Test.Handler<YourMessageHandler>(bus => new YourMessageHandler(dep1, dep2))
其中dep1和dep2很可能只是你的模拟框架为你准备的一些存根或模拟。
- 由Udi Dahan从这里更新:
您可以通过Test.Bus访问模拟的总线实例。