¿Cómo se simuliza los métodos estáticos "Aislador de TIPEMOCK"?
-
13-09-2020 - |
Pregunta
Como algunos de ustedes lo sabrán, generalmente no es posible burlarse de un método estático en .NET.
Al burlarse, me refiero a reemplazar un método en una clase con otro método con la misma firma, generalmente para fines de prueba.
Los dos métodos principales utilizados para burlarse de un método son para declararlo virtual o definirlo en una interfaz.Ninguno de estos dos se permite para los métodos estáticos .NET.
Sin embargo, hay una herramienta costosa llamada "Aislador de TymEmock", que permite la burla de los métodos estáticos.¿Cómo realiza el aislador esta hazaña aparentemente imposible?
Solución
Está en la Preguntas frecuentes .
Básicamente, un Typemock Fake instantánea un nuevo objeto del tipo y ganchos originales en cada método y la llamada de propiedad para ese objeto, redirigiendo la llamada a la falsificación y devuelve los valores que especifique.Utiliza un vudú profundo en el Framework .NET (la .NET Profiler API , si está interesado) para hacer esto, pero todo es "legítimo".Técnicamente, cualquiera puede construir un duplicado de Typemock, pero aún no he visto uno.