Sto sviluppando un'applicazione che si collega a un database e sto utilizzando DI / IOC. Quando si esegue l'intera applicazione durante lo sviluppo, voglio naturalmente evitare di colpire il DB. Attualmente, ho qualcosa di simile nella mia composizione root (usando SimpleInjector):
#if DEBUG
container.Register<IDbActions, MockDbActions>();
#else
container.Register<IDbActions>(() => new RealDbActions(someParameter));
#endif
Questa è una buona pratica o esiste un modo migliore per registrare i mock utilizzati per l'esecuzione dell'intera applicazione durante lo sviluppo?
Modifica: non si tratta di test unitari. Tutte le classi possono essere testate unitamente a prescindere da ciò che si trova nella radice della composizione, perché il contenitore IOC è (naturalmente) mai usato durante il test dell'unità.