Wie scheinet "TypeMock Isolator" statische Methoden?
-
13-09-2020 - |
Frage
Wenn einige von Ihnen wissen, ist es im Allgemeinen nicht möglich, eine statische Methode in .NET zu verspotten.
Durch das Spott, ich meine, ich meine, ein Verfahren in einer Klasse mit einem anderen Verfahren mit derselben Signatur, normalerweise zu Testzwecken, zu ersetzen.
Die beiden Hauptmethoden, die zum Spott einer Methode verwendet werden, sollen virtuell deklarieren oder in einer Schnittstelle definieren.Keine dieser beiden ist zulässig für .NET statische Methoden.
Es gibt jedoch ein teures Werkzeug, das als "TypeMock Isolator" bezeichnet wird, das statische Methoden verspottet.Wie führt Isolator diese scheinbar unmögliche Leistung aus?
Lösung
es ist in der faq .
Grundsätzlich institiert ein TypeMock-Fake ein neues Objekt des Originaltyps und Hakens in jeder Methode und in jeder Methode und dem Eigenschaftsaufruf für dieses Objekt, wodurch der Anruf an die Fake umgeleitet wird und die von Ihnen angegebenen Werte zurückgeleitet werden.Es verwendet ein paar tiefe Voodoo in dem .NET-Framework (der .NET Profiler API , wenn Sie interessiert sind) dies zu tun, aber es ist alles "legit".Technisch kann jeder ein Duplikat von Typemock bauen, aber ich muss noch einen sehen.