Questo è come si suppone per iniettare le dipendenze per il vostro gestore NServiceBus per provarlo:Dependency Injection per NServiceBus unit testing gestore
Test.Handler<YourMessageHandler>()
.WithExternalDependencies(h => h.Dependency = yourObj)
(http://nservicebus.com/UnitTesting.aspx)
Tuttavia ciò significa la mia dipendenza riferimento a un oggetto dovrebbe essere pubblico che non mi piace molto. C'è un modo per mantenerlo privato readonly e assegnarlo all'interno del costruttore, in modo che l'implementazione debba essere passata solo attraverso il gestore handler?
Grazie
Ho provato questo approccio, ma il problema è che la proprietà IBus del mio gestore è nullo nel caso, ho bisogno che sia inizializzata correttamente – YMC
Intendi referenziare IBus nel gestore? Non è possibile aggiungere un parametro costruttore per quello? Dovresti essere in grado di fare semplicemente qualcosa con l'effetto di 'public YourMessageHandler (IDependency dep1, IOtherDependency dep2, bus IBus)' e assegnarlo semplicemente da lì. Mi scuso se mi manca qualcosa di ovvio, non ho mai avuto problemi a ottenere i riferimenti di cui avevo bisogno prima. – tmesser
a destra, all'interno del gestore Bus.Send <> (...) viene utilizzato, quindi è necessario verificarne l'esecuzione. Il problema è che non ho idea di come istanziare la proprietà di tipo IBus, si suppone che sia fatto magicamente da NServiceBus, non vedo nemmeno alcuna implementazione pubblica dell'interfaccia, non esiste una classe 'Bus' o qualcosa del genere. Voglio dire, è qualcosa di nascosto da noi sviluppatori dalla libreria NServiceBus – YMC