Насмешка невиртуальных методов в C#

Есть два варианта использования. Они особенно часто используются во встроенных разработках.

  1. Компилятор не будет оптимизировать функции, использующие переменные, которые определены с ключевым словом volatile

  2. Volatile используется для доступа к точным местам памяти в RAM, ROM и т. Д. ... Это чаще используется для управления отображаемыми в памяти устройствами, доступа к регистрам ЦП и определения местоположения определенных областей памяти.

См. Примеры с перечнем сборок. Re: Использование ключевого слова "volatile" на языке C во встроенных разработках

11
задан Samuel Carrijo 2 July 2009 в 12:00
поделиться

2 ответа

Я из Typemock, и я не буду рассматривать комментарии «Слишком мощный» (хотя я не понимаю, почему люди не захотят использовать лучший инструмент для работы).

Вот как работает Typemock Isolator. Вы когда-нибудь использовали профилировщик производительности? Изолятор - это профайлер. Он подключается к среде CLR и во время выполнения теста меняет методы. Когда метод получает JITted, он меняет его, поэтому, когда метод запускается, перед выполнением исходного кода он спрашивает: следует ли мне запускать его так, как предполагалось изначально, а если нет, что мне делать? И благодаря этой особой технологии он может имитировать любой метод и технологию .Net. Вот и все.

Когда вы устанавливаете поведение с помощью API, ответ на вопросы теперь становится интересным и меняет поведение во время выполнения этого метода. Просто, но под покровом

14
ответ дан 3 December 2019 в 05:35
поделиться

Согласно веб-сайту он использует AOP для перенаправления вызовов:

Typemock Isolator использует аспектно-ориентированную технологию для перенаправления вызовов из реального кода. Это позволяет разработчикам определять поведение внешнего компонента, необходимого для тестируемого сценария. Например, вы можете имитировать, что диск заполнен при записи в базу данных, указав Typemock Isolator генерировать исключение OutOfDiskSpaceException при записи в базу данных. Это сценарий, который будет практически невозможно протестировать без Typemock Isolator. Разработчик определяет поведение в реальном модульном тесте, а Typemock Isolator автоматически изолирует все необходимые компоненты.

Этот метод требует, чтобы вы настроили специальную среду, прежде чем вы сможете запустить тест или использовать подключаемый модуль VS.

Некоторые люди думают, что способность имитировать все делает Typemock слишком мощным , поскольку вам не нужно так много думать о хорошем дизайне. Цитата из Айенде :

Основная слабость Type Mock - это его мощность, она позволяет мне сокращать пути, которые я не хочу использовать, я хочу получить систему с низкой связью и высокой сплоченность.

Но, разумеется, поскольку он является создателем Rhino Mock, он не объективен :)

Я бы подумал, что вам предстоит большая работа, если вы хотите создать фреймворк с этой функциональностью, поэтому я бы рекомендую либо приобрести Typemock, либо научиться кодировать без него :)

Основная слабость Type Mock - это его мощность, она позволяет мне сокращать путь, которым я не хочу идти, я хочу получить систему с низкой связью и высокой связностью.

Но, разумеется, поскольку он является создателем Rhino Mock, он не объективен :)

Я бы подумал, что вам предстоит большая работа, если вы хотите создать фреймворк с этой функциональностью, поэтому я бы рекомендую либо приобрести Typemock, либо научиться кодировать без него :)

Основная слабость Type Mock - это его мощность, она позволяет мне сокращать путь, которым я не хочу идти, я хочу получить систему с низкой связью и высокой связностью.

Но, разумеется, поскольку он является создателем Rhino Mock, он не объективен :)

Я бы подумал, что вам предстоит большая работа, если вы хотите создать фреймворк с этой функциональностью, поэтому я бы рекомендую либо приобрести Typemock, либо научиться кодировать без него :)

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

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