Как «TypeMock isolator» издевательства статических методов?
-
13-09-2020 - |
Вопрос
Как некоторые из вас будут знать, это, как правило, невозможно издеваться в статический метод в .NET.
издевательства, я хочу заменять метод в классе с другим способом с одной и той же подписью, обычно для целей тестирования.
Два основных метода, используемые для издевания метода, заключаются в том, чтобы объявить его виртуальным или определить его в интерфейсе.Ни один из этих двух не допускается для статических методов .NET.
Тем не менее, есть дорогой инструмент под названием «Typemock Isolator», который позволяет издеваться от статических методов.Как изолятор выполняет этот, казалось бы, невозможный подвиг?
Решение
Это в FAQ .
в основном, подделка Typemock создает новый объект оригинального типа и крючков в каждый и каждый метод и вызов свойств для этого объекта, перенаправляя вызов на подделку и возвращает указанные вами значения.Он использует немного глубокого вуду в рамках .NET Framework ( .NET Profiler API , если вы заинтересованы), чтобы сделать это, но это все «законно».Технически любой может построить дубликат Tymock, но я еще не видел.