YMC*_*YMC 6 c# unit-testing dependency-injection nservicebus
这是你应该如何为NServiceBus处理程序注入依赖项来测试它:
Test.Handler<YourMessageHandler>()
.WithExternalDependencies(h => h.Dependency = yourObj)
Run Code Online (Sandbox Code Playgroud)
(http://nservicebus.com/UnitTesting.aspx)
但是这意味着我的Dependency对象引用应该公开,我不喜欢.有没有办法让它保持私有readonly并在构造函数中分配它,所以应该只通过处理程序构造函数传递实现?
谢谢
您可以使用以下语法来使用构造函数注入:
Test.Handler<YourMessageHandler>(bus => new YourMessageHandler(dep1, dep2))
Run Code Online (Sandbox Code Playgroud)
dep1和dep2很可能只是你的模拟框架为你准备的一些存根或模拟.
- 由Udi Dahan从这里更新:
您可以通过Test.Bus访问模拟的总线实例.