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