Подтвердить что ты не робот

Каковы возможности Moq и Rhino.mocks?

Я не могу найти конкретное сравнение функций Moq и Rhino. Все вопросы "вам нравятся лучше и почему", или "здесь, как вы делаете простой макет в носороге и как это делается в moq".

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

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

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

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

Изменить. Я также просмотрел некоторые другие .Net-рамки.

4b9b3361

Ответ 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 (не уверенное в других) не имеет проблем.