Así es como se supone que inyectar dependencias para su manejador NServiceBus para probarlo:La inyección de dependencia para NServiceBus pruebas unitarias manejador
Test.Handler<YourMessageHandler>()
.WithExternalDependencies(h => h.Dependency = yourObj)
(http://nservicebus.com/UnitTesting.aspx)
Sin embargo esto significa mi Dependencia referencia de objeto debe ser pública que no me gusta mucho ¿Hay alguna manera de mantenerlo como algo privado y asignarlo dentro del constructor, de modo que la implementación se suponga que se pase a través del constructor del manejador solamente?
Gracias
Intenté este enfoque, pero el problema es que la propiedad IBus de mi controlador es nula en este caso, necesito que se inicialice correctamente – YMC
¿Quiere decir referenciar IBus en el controlador? ¿No es posible agregar un parámetro de constructor para eso? Debería poder simplemente hacer algo con el efecto de 'public YourMessageHandler (IDependence dep1, IOtherDependency dep2, IBus bus)' y simplemente asignarlo desde allí. Disculpas si me falta algo obvio, nunca tuve problemas para obtener las referencias que necesitaba con esto antes. – tmesser
a la derecha, dentro del controlador Bus.Send <> (...) se usa, por lo que debo verificar su ejecución. El problema es que no tengo idea de cómo crear una instancia de la propiedad de tipo IBus, se supone que se hace mágicamente por NServiceBus, ni siquiera veo ninguna implementación pública de la interfaz, no hay clase de 'Bus' o algo así. Me refiero a que es algo que nos han ocultado los desarrolladores de la biblioteca NServiceBus – YMC