Каковы возможности Moq и Rhino.mocks?
Я не могу найти конкретное сравнение функций Moq и Rhino. Все вопросы "что вам нравится больше и почему", или "вот как вы делаете простую насмешку в носороге и как это делается в moq".
Я не могу найти глубокое сравнение нигде. Я знаю о различиях синтаксиса, я не ищу ответы об этом. Я ищу сравнение возможностей. Например:
Rhino имеет Expect.On() для насмешки с резьбой. Может ли Мок это сделать?
А как насчет Multi-mocking (реализация нескольких интерфейсов с одним mock). Может ли Мок это сделать?
Я считаю, что Мок теперь может издеваться над Защищенными членами. Может ли Rhino сделать это?
Редактировать: в конечном итоге я также посмотрел на некоторые другие.Net рамки.
5 ответов
Спасибо тем, кто откликнулся за последние несколько недель. Я закончил тем, что написал сообщение в блоге о своих выводах, так как мне пришлось столько копать, что казалось, что я мог бы также обобщить их в надежде помочь другим. Диаграмма, которую я разместил, систематизирует мои выводы:
Единственное предостережение, о котором я говорил в посте блога, заключается в том, что диаграмма полезна для проверки возможностей, но реальным преимуществом для большинства сред являются их уникальные особенности. В конце концов я выбрал Moq из-за простого в использовании API. Кроме того, вся информация подвержена ошибкам и может быть изменена - если вы не согласны с чем-то на графике, пожалуйста, оставьте комментарий.
Я ни в коем случае не эксперт, но я считаю, что Rhino добавил немного синтаксиса Moq, так что кривая обучения была уменьшена до того, что вы ожидаете с MoQ. Я работал как с тестированием, так и с некоторыми синтаксисами. Сначала я собирался использовать MoQ, так как это было проще, но потом мой друг показал мне последние обновления и насколько они были похожи. Просто сообщаю тебе.
Rhino имеет функцию GetArgumentsForCallsMadeOn(), которая в некоторых случаях облегчает проверку аргументов.
Для полноты изложения отмечу, что сейчас на CodePlex есть NMock3. Он имеет простую миграцию с NMock2, просто замените ссылку на NMock2.dll ссылкой на NMock3.dll. Это добавляет безопасность типов и поддержку рефакторинга.
Я мог бы добавить "Проверка поведения" в эти. Это, кажется, самое большое ограничение Moq, с которым у Rhino (не уверенного в других) нет проблем.