Come deridere o stub un oggetto DataRepository generato .netTiers
-
03-07-2019 - |
Domanda
Sto usando derisioni di Rhino per deridere unit test su oggetti. Il nostro DAL utilizza il codemith per generare codice dai modelli .netTiers, che crea queste classi DataRepository che contengono tutti i metodi per la transazione di tipo CRUD sull'origine dati. Nel test unitario, sto cercando di deridere questo oggetto repository di dati che non ha una classe di interfaccia da usare come stub.
In breve, qualcuno ha usato con successo Rhino derisioni per derubare un DataRepository generato da .netTiers, evitando la necessità di un database di test e transazioni reali contro l'origine dati che alla fine devono essere abbattute ??
Soluzione
Ho riflettuto su questo per un po ', poiché nessuno ha ancora intensificato e scritto un'implementazione finta di DataRepository per netTiers (per quanto ne sappia).
Dato che non mi preoccupo troppo dei passaggi di replay dei record di TypeMock e RhinoMocks, ho optato per il Moq più recente, che deriderà felicemente le classi DataRepository o il livello Service si chiamerà con una seccatura minima.
Supponendo che tu sia su .NET 3.5, lo consiglierei.
Altri suggerimenti
In breve, Rhino può solo deridere tipi che sono interfacce o classi non sigillate. E poi, puoi solo stub metodi che sono virtuali o astratti.
Se il tuo obiettivo è quello di sostituire un DataRepository con un'implementazione fittizia, penso che dovrai esaminare i framework di derisione più avanzati come TypeMock .
Se hai il controllo dei modelli CS, un'altra opzione sarebbe quella di utilizzare i modelli per generare anche finte implementazioni di DataRepository.