Как делает “Изолятор Typemock”, дразнят статические методы?

Как некоторые из Вас будут знать, обычно не возможно дразнить статический метод в .NET.

Путем насмешки я означаю заменять метод в классе с другим методом с той же подписью обычно для тестирования.

Эти два основных метода, используемые для насмешки метода, состоят в том, чтобы объявить это виртуальный или определить его в интерфейсе. Ни один из этих двух не позволяется для статических методов .NET.

Однако существует дорогой инструмент, названный "Изолятор Typemock", который допускает насмешку статических методов. Как Изолятор выполняет этот на вид невозможный подвиг?

11
задан Dror Helper 11 July 2011 в 14:04
поделиться

1 ответ

Это в FAQ .

По сути, подделка Typemock создает экземпляр нового объекта исходного типа и подключается к каждому вызову метода и свойства для этого объекта, перенаправляя вызов на подделку и возвращая указанные вами значения. Для этого он использует какое-то глубокое вуду в .NET Framework ( .NET Profiler API , если вам интересно), но все это «законно». Технически любой может создать дубликат Typemock, но я его еще не видел.

10
ответ дан 3 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: