Vra

Ek gebruik 'n kode kragopwekker (CodeSmith met .NetTiers sjabloon) om al die DAL-kode te genereer. Ek skryf eenheid toetse vir my kode (besigheid laag), en hierdie toetse is besig om mooi stadig te loop. Die probleem is dat vir elke toets, ek die databasis te herstel na 'n skoon toestand het. Ook, as ek doen 'n baie toetse, blyk dit dat die latency van die databasis operasies op te som 'n mooi bietjie vertraging.

Alle DB operasies deur 'n DataRepository klas wat gegenereer word deur .NetTiers. Weet jy of daar 'n manier om te genereer (of kode myself) 'n mock-DataRepository dat in plaas sou gebruik in-geheue stoor van die gebruik van die databasis?

Op hierdie manier, sal ek in staat wees om hierdie spot repository gebruik in my eenheid toetse, hulle 'n baie vinniger, sonder om werklik iets te verander om my huidige kode!

Was dit nuttig?

Oplossing

Neem 'n blik op Afhanklikheid inspuiting (DI) en Inversie van beheer houers (IOK). In wese is, sal jy 'n koppelvlak wat dit 'n nuwe spot DB voorwerp kan implementeer, en dan sal die DI raamwerk jou spot DB spuit wanneer die bestuur van toetse, en die werklike DB skep wanneer loop jy inligting.

Daar is talle gratis en open source biblioteke wat jy kan gebruik om jou te help. Aangesien jy in C #, een van die nuwe en up and coming DI biblioteke is Ninject . Daar is baie ander ook. Kyk gerus na hierdie Wikipedia artikel vir ander en 'n hoë vlak beskrywing.

Ander wenke

Van die beskrywing van die probleem, ek dink jy is die uitvoering van die integrasie toets omdat jou toets is gebruik te maak van die besigheid en die DAL en live databasis.

Vir eenheid toets, jy gaan met 'n laag van kode met alle ander afhanklikhede óf bespot of doodgedruk. Met hierdie benadering, sal jy eenheid toetse baie vinnig wees om uit te voer op elke inkrementele kode veranderinge.

Daar is verskeie spot raamwerke wat jy kan gebruik soos Rhino Mock, MOQ, typemock om 'n paar te noem. (In my projek, ek gebruik Rhino spot die DAL laag en eenheid toets Business Layer in isolasie spot)

Harsa

Van ons eenheid toetse gebruik data gaan haal XML se wat gegenereer uit 'n databasis om toegang db spot. DAL klasse word vervang deur mock kinders omdat hulle al gestoor in 'n DI houer.

Die opwekking van die xml se persoonlike kode, as jy 'n open source oplossing vir hierdie vind dan Ek is bly om dit te hoor.

Edit nadat antwoord Stefan se: Ek onthou nog 'n span met behulp van SQL CE vir hul toets databasis

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top