Відповіді:
Так. Деякі структури , такі як Microsoft родимки , TypeMock ізолятор і JustMock , дозволяють бути в змозі сміятися над чим завгодно. Ці глузуючі інструменти, як правило, кращі для розробників, які бажають використовувати їх у існуючому застарілому коді, оскільки може бути неможливо переробити такий дизайн у більш тестовий дизайн. *
Традиційно, тестовані конструкції означають , що кодовий потрібно зробити ліберальне використання інтерфейсів, абстрактних класів, віртуальних методи, незакритих класів і т.д. Таким чином, традиційні рамки глузливо , як MOq і RhinoMocks добре працювати з кодом розроблені з використанням Test Driven Development, Dependency Injection, і інші подібні поняття. До речі, я б дуже рекомендував використовувати Dependency Injection, оскільки ви отримуєте набагато більше, ніж просто перевіряемый код, але і більш рентабельний код.
* Див. « Ефективна робота зі застарілим кодом» щодо способів того, як повільно перетворювати код без тестів у код, який можна використовувати з традиційними інструментами тестування (та знущаннями).
Навчальний посібник Moq в самому початку має розділ про тло, філософію та суперечки, в якому обговорюється це стосовно декількох конкретних інструментів: IsoMolator TypeMock, RhinoMocks та Moq. Це написано для пояснення Moq, тому, природно, трохи перекошений, але я вважав, що це мені дуже корисно, намагаючись зрозуміти деякі відмінності в глузливих рамках.
Я знайшов відповіді на цю тему SO в С # Mocking Frameworks також корисними. Більшість просто посилаються на один Mocking Framework, який користувач дійсно вважає корисним, але є відповідь від HaraldV щодо способів, які обговорюють макети на основі проксі та макети на основі профілів.
Я також зміг знайти діаграму порівняння в Інтернеті. Зауважте, що це з 2009 року, тому я не впевнений, що він актуальний; є хоча б один коментар, в якому зазначається, що інформація про TypeMock та зворотні виклики застаріла, але діаграма може бути корисною для розгляду питань, навіть якщо вам знадобиться зробити обробку, щоб побачити, що таке стан: RhinoMocks, Moq, NMock, та діаграму порівняння TypeMock
В Google Code є проект з тестовими кейсами в декількох фреймворках для легкого порівняння коду: mocking-frameworks-порівняння
У моїй команді ми вибрали Microsoft Moles . Він виграє суттєво на №2, №3 та №4, хоча є менш ідіоматичним, ніж більшість альтернативних варіантів, і знаходиться в нижньому кінці №1.