Soy de Typemock, y no me referiré a los comentarios "Demasiado poderosos" (aunque me supera el por qué las personas no querrían usar la mejor herramienta para el trabajo).
Así es como funciona Typemock Isolator. ¿Alguna vez ha usado un perfilador de rendimiento? Isolator es un perfilador. Se engancha en el CLR y dentro del tiempo de ejecución de la prueba, cambia los métodos. Cuando un método obtiene JITted, lo cambia, por lo que cuando se ejecuta el método, antes de ejecutar el código original, se pregunta: ¿debo ejecutarlo como se pretendía originalmente y, en caso negativo, qué debo hacer? Y debido a esta tecnología específica, puede burlarse de cualquier método y tecnología .Net. Eso es.
Cuando establece un comportamiento utilizando la API, la respuesta a las preguntas se vuelve intersting y cambia el comportamiento en el tiempo de ejecución de ese método. Simple, pero bajo las cubiertas es un montón de trabajo :)
Isolator viene con un complemento VS para hacer que las pruebas se ejecuten sin problemas en VS, y con una herramienta de línea de comandos y tareas de MSBuild o NAnt para su uso en un servidor de compilación.
Estaremos encantados de responder cualquier otra pregunta que pueda tener.
Mejor conjetura, una combinación de AppDomains, Reflection.Emit y un poco de hackers y magia. Pero no estoy calificado para hacer muchas conjeturas sobre esto. –
agregado tag typemock – BengtBe
Véase también http://stackoverflow.com/questions/2187513/how-to-make-aunit-test-mock-of-an-object-with-non-virtual-functions/6690183 –