Domanda

Sto appena iniziando a valutare i framework di derisione per il mio team e mi chiedo se qualcuno abbia qualche suggerimento per fare riferimento alla documentazione o all'esperienza che è possibile condividere in merito al costo del derisione quando si eseguono i test delle prestazioni.

Link? Esperienza personale? Dettagli apprezzati.

È stato utile?

Soluzione 4

Ho testato framework di simulazione (in particolare Moq e TypeMock). TypeMock è molto più potente e flessibile ma poiché si inserisce nel framework come profiler ha davvero un impatto significativo sulle prestazioni.

La mia conclusione è che TypeMock è uno strumento eccellente per scenari di test senza carico. Moq è meno flessibile ... ma molto più leggero e non ha un ampio effetto sulle prestazioni generali. Con Moq devi configurare le tue applicazioni in modo specifico per essere in grado di deridere le dipendenze esterne (un esercizio in una buona progettazione in ogni caso) ma ha dimostrato di adattarsi molto meglio ai miei scenari relativi al carico.

Sfortunatamente non ho registrato numeri reali nei miei test riguardanti Moq vs TypeMock ma il vantaggio in termini di prestazioni di Moq è significativo nella mia esperienza.

Altri suggerimenti

IIRC TypeMock utilizza l'API di Profiler, che generalmente aggiunge un po 'di sovraccarico, ma dovrebbe comunque essere più veloce dell'esecuzione dell'applicazione tramite un profiler.

NCover utilizza anche l'API di Profiler e sembra essere abbastanza veloce.

Aaron Jensen ha creato un progetto di test e ha effettuato alcuni test delle prestazioni. http://codebetter.com/ blog / aaron.jensen / archive / 2008/05/08 / mock-quadro-benchmarks.aspx

Preferirei scegliere in base all'API e alle funzionalità, ma le prestazioni possono essere un problema con TDD e l'esecuzione dei test un sacco di volte.

Usiamo TypeMock da un paio d'anni e nella mia esperienza non c'è un sovraccarico significativo nelle prestazioni (sono sicuro che ci sia un sovraccarico, non è solo un grosso problema).

Tuttavia, a causa della natura di come funziona TypeMock ci sono diverse cose da considerare. Poiché TypeMock funziona fondamentalmente iniettando il codice al volo, gli errori a volte possono essere molto esotici. La segnalazione di errori può quindi diventare un compito arduo. Preparati a scavare in IL.

La mia esperienza è che può essere difficile spiegare lo "sviluppatore medio" come funziona TypeMock. Diventa rapidamente complicato e anche se i loro strumenti di traccia rendono possibile la risoluzione dei problemi lascia ancora un po 'di supporto.

Inoltre, poiché TypeMock ti consentirà di deridere qualsiasi cosa (tranne mscorlib), non è davvero necessario aggiungere i livelli necessari di indiretta al codice. Questa è una funzionalità e TypeMock non è davvero in colpa qui. Tuttavia, ho visto molti sviluppatori tentare di risolvere i loro problemi deridendo ovunque invece di disaccoppiare il codice. Ciò non migliora la qualità generale del codice IMO.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top