Каковы возможности Moq и Rhino.mocks? - PullRequest
44 голосов
/ 27 марта 2009

Я не могу найти конкретное сравнение функций Moq и Rhino. Все вопросы: «что вам нравится больше и почему» или «вот как вы делаете простую насмешку в носороге и как это делается в moq».

Я не могу найти глубокое сравнение нигде. Я знаю о различиях в синтаксисе, я не ищу ответы об этом. Я ищу сравнение возможностей . Например:

  • Rhino имеет Expect.On () для резьбовых насмешливый. Может ли Мок это сделать?

  • А как насчет Multi-mocking (реализация нескольких интерфейсов с одним издевательством). Может ли Мок это сделать?

  • Я считаю, что Мок теперь может издеваться над Защищенными членами. Может ли Rhino это сделать?

Редактировать : В итоге я посмотрел и на некоторые другие .Net-фреймворки.

Ответы [ 5 ]

88 голосов
/ 27 апреля 2009

Спасибо тем, кто ответил за последние несколько недель. Я закончил тем, что написал сообщение в блоге о своих выводах, так как мне пришлось столько копать, что казалось, что я мог бы также обобщить их в надежде помочь другим. В таблице, которую я разместил, представлены мои выводы:

alt text

Одно предостережение, которое я затронул в посте блога, заключается в том, что диаграмма полезна для проверки возможностей, но реальными преимуществами для большинства фреймворков являются их уникальные особенности. В конце концов я выбрал Moq из-за простого в использовании API. Кроме того, вся информация подвержена ошибкам и может быть изменена - если вы не согласны с чем-то на графике, пожалуйста, оставьте комментарий.

2 голосов
/ 27 марта 2009

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

1 голос
/ 11 апреля 2009

Rhino имеет GetArgumentsForCallsMadeOn (), который в некоторых случаях облегчает проверку аргументов.

0 голосов
/ 20 января 2011

Просто для полноты отметим, что теперь на CodePlex есть NMock3. Он имеет простую миграцию с NMock2, просто замените ссылку на NMock2.dll ссылкой на NMock3.dll. Добавлена ​​безопасность типов и поддержка рефакторинга.

0 голосов
/ 13 июня 2009

Я мог бы добавить "Проверка поведения" в эти. Это, кажется, самое большое ограничение Moq, с которым у Rhino (не уверенного в других) нет проблем.

...