Насмешка носорога по сравнению с Typemock по сравнению с JustMock по сравнению с [закрытым]

Я должен выбрать ложную платформу к новому проекту.

Каковы за и против для тех платформ? Какая-либо сравнительная таблица?

Я знаю, что JustMock - я стадия отладки, но это - взгляд, очень хороший прямо сейчас (очень похожий на TypeMock)

Править: I'v что относительно родинки MS?

26
задан skaffman 25 February 2012 в 20:58
поделиться

6 ответов

До появления JustMock этот вопрос задавали, и ответы на можно найти здесь . Есть очень хорошее сравнение фреймворков - у него нет JustMock пока нет, но вы можете увидеть синтаксис и возможности каждой макетной платформы .NET.

RhinoMocks Moq ) являются проектами с открытым исходным кодом, которые могут создавать поддельные объекты путем наследования типа, что означает, что они не могут подделывать статические методы, структуры и закрытые классы.

Typemock Isolator использует профилировщик CLR для перехвата вызовов .NET и изменения их во время выполнения и может подделать практически все. Typemock также может подделывать объекты, к которым вы не можете "добраться" из теста, потому что они создаются внутри производственного кода. Некоторые называют это "черной магией", но другие находят возможность подделать практически все, включая сторонние библиотеки и устаревший код - обязательно.

JustMock - новый проигрыватель, и сейчас он только в бета-версии - в нем есть часть Typemock Isolator и он может работать без профилировщика API - в этом режиме он такой же, как RhinoMocks. Это еще не все. обнаружил, сколько возможностей Typemock Isolator он действительно имеет. Прямо сейчас кажется, что это хорошее начало в правильном направлении, но еще предстоит пройти некоторый путь, прежде чем он станет действительным вариантом.

21
ответ дан 28 November 2019 в 06:50
поделиться

См. Также: https://stackoverflow.com/questions/37359/what-c-mocking-framework-to-use/2608634# 2608634

Я сейчас занимаюсь модульным тестированием в Moq, и должен сказать, что это работает очень хорошо! - перефразирую: отлично работает! Я не использовал другие фреймворки для фиксации, которые вы упомянули, поэтому не могу дать вам сравнения. Но я могу сказать, что я рад, что выбрал Moq в качестве своего первого тестового фреймворка для создания макетов. Ламда-выражения действительно хороши, а также довольно легки и удобны для чтения (синтаксис записи / воспроизведения в большинстве других фреймворков имитирования на самом деле не улучшает вашу читаемость)

Кроме того (и это немного не по теме) В ближайшем будущем я буду использовать Ninject в качестве контейнера IoC, и оба фреймворка идут рука об руку.У Ninject также есть Lamda, и он даже обеспечивает поддержку контейнеров с автоматическим имитированием для Moq (с использованием расширения). Так что, если вы также планируете использовать контейнер IoC, вы можете проверить эту замечательную комбинацию:]

2
ответ дан 28 November 2019 в 06:50
поделиться

Недавно я перешел с RhinoMocks на Moq.

Оба имеют схожие возможности, но Moq имеет гораздо более чистый API

14
ответ дан 28 November 2019 в 06:50
поделиться

Также проверьте Microsoft Moles , среду изоляции для .NET, которая позволяет заменять любые .NET с настраиваемым делегатом.

Moles имеет версию, которую можно использовать в коммерческих проектах и ​​которая поддерживается в Visual Studio 2008 и 2010.

8
ответ дан 28 November 2019 в 06:50
поделиться

Я не скажу вам, что лучше, потому что у каждого есть свои плюсы и минусы. Я всегда использовал Rhino Mocks, потому что это бесплатно, и вокруг есть отличное сообщество, и мне легко найти любую помощь.

TypeMock не является бесплатным (я полагаю). Однако TypeMock отлично подходит, если вы хотите, например, протестировать устаревший код с частными или статическими типами членов. Другие фреймворки mocking не могут этого сделать. Недостатком является то, что это не заставляет вас писать тестируемый код, который имеет другие преимущества, кроме тестируемости.

Я не знаю JustMock, поэтому не могу сказать вам, как это работает.

Я бы посоветовал вам попробовать их все и выбрать ту, с которой вам будет комфортно. Однако, если вам нужно протестировать устаревший код, выберите TypeMock.

Я надеюсь, что другие дадут вам более подробную информацию.

1
ответ дан 28 November 2019 в 06:50
поделиться

[Заявление об ограничении ответственности - я работаю в Telerik]

Несколько слов о JustMock. Его API больше похож на API Moq, чем на API RhinoMocks, поэтому, если вы знакомы с Moq, у вас не должно возникнуть проблем с изучением JustMock. В JustMock мы пытались улучшить историю, например, при имитации последовательных вызовов. Кроме того, как уже упоминалось, JustMock позволяет имитировать статические классы и методы / свойства , запечатанные классы, невиртуальные методы и свойства и т. д. с использованием того же синтаксиса, подобного Moq. Также благодаря этому в JustMock можно выполнять частичное имекание.

Кстати, «черная магия», о которой упоминал Дрор, также возможна при использовании JustMock, если вы напрямую ссылаетесь на сборку Telerik.CodeWeaver.Hook, но, к сожалению, в настоящий момент это не задокументировано. Если кто-то захочет это сделать. , он может открыть заявку в службу поддержки, и мы будем рады помочь.

Надеюсь, это поможет.

11
ответ дан 28 November 2019 в 06:50
поделиться
Другие вопросы по тегам:

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