Io vengo da Typemock e non affronterò i commenti "troppo potente" (anche se è oltre me perché la gente non vorrebbe usare lo strumento migliore per il lavoro).
Ecco come funziona Typemock Isolator. Hai mai usato un profiler delle prestazioni? Isolatore è un profiler. Si aggancia al CLR e all'interno del tempo di esecuzione del test, cambia i metodi. Quando un metodo diventa JITted, lo cambia, quindi quando il metodo viene eseguito, prima di eseguire il codice originale, chiede: dovrei eseguirlo come originariamente previsto, e in caso contrario, cosa dovrei fare? E grazie a questa tecnologia specifica, può prendere in giro qualsiasi metodo e tecnologia .Net. Questo è tutto.
Quando si imposta un comportamento utilizzando l'API, la risposta alle domande diventa ora interessante e modifica il comportamento in fase di esecuzione di tale metodo. Semplice, ma sotto le coperte è un sacco di lavoro :)
Isolator viene fornito con un AddIn VS per eseguire i test senza soluzione di continuità all'interno di VS e con uno strumento da riga di comando e attività MSBuild o NAnt per l'utilizzo in un server di build.
Sarò felice di rispondere a qualsiasi altra domanda tu possa avere.
La migliore ipotesi, una combinazione di AppDomains, Reflection.Emit e un bel po 'di hackery e magia. Ma non sono qualificato per fare molte ipotesi plausibili su questo. –
aggiunto tag typemock – BengtBe
Vedere anche http://stackoverflow.com/questions/2187513/how-to-make-a-unit-test-mock-of-an-object-with-non-virtual-functions/6690183 –