44 votes

Quelles sont les capacités de Moq et Rhino.mocks ?

Je ne trouve pas de comparaison spécifique, fonctionnalité par fonctionnalité, entre Moq et Rhino. Toutes les questions sont "lequel préférez-vous et pourquoi", ou "voici comment faire une simple maquette dans Rhino et comment la faire dans Moq".

Je ne trouve nulle part une comparaison approfondie. Je suis conscient des différences de syntaxe, je ne cherche pas de réponses à ce sujet. Je cherche une comparaison des capacités . Par exemple :

  • Rhino dispose de Expect.On() pour la mise en place de la pour le mocking. Moq peut-il faire cela ?

  • Qu'en est-il du multi-mocking (implémentation de plusieurs interfaces avec une interface fantaisie). Moq peut-il le faire ?

  • Je crois que Moq peut maintenant se moquer des membres protégés. Rhino peut-il le faire ?

Modifier : J'ai fini par regarder certains des autres frameworks .Net également.

88voto

womp Points 71924

Merci à ceux qui ont répondu au cours des dernières semaines. J'ai fini par écrire un article de blog sur mes résultats, car j'ai dû faire tellement de recherches que je me suis dit que je pourrais aussi bien les résumer dans l'espoir d'aider les autres. Le tableau que j'ai publié organise mes résultats :

alt text

Une mise en garde, que j'ai abordée dans l'article de blog, est que le tableau est utile pour vérifier les capacités, mais les véritables avantages de la plupart des frameworks sont leurs caractéristiques uniques. J'ai finalement choisi Moq en raison de la facilité d'utilisation de son API. En outre, toutes les informations sont sujettes à des erreurs et à des changements - si vous n'êtes pas d'accord avec quelque chose sur le tableau, veuillez poster un commentaire.

2voto

rball Points 3674

Je ne suis en aucun cas un expert, mais je crois que Rhino a ajouté une partie de la syntaxe Moq, de sorte que la courbe d'apprentissage a été réduite à ce que vous attendez de MoQ. J'ai travaillé avec les deux avec des tests et certaines syntaxes étaient presque identiques. J'allais initialement opter pour MoQ car c'était plus facile, mais mon ami m'a montré les dernières mises à jour et j'ai constaté à quel point elles étaient similaires. Je voulais juste que vous sachiez.

1voto

user31934 Points 243

Rhino dispose de GetArgumentsForCallsMadeOn() qui, selon l'OMI, facilite la vérification des arguments dans certains cas.

0voto

Bill W Points 484

Juste pour être complet, je noterai qu'il y a maintenant NMock3 sur CodePlex . Il permet une migration facile depuis NMock2, il suffit de remplacer la référence à NMock2.dll par une référence à NMock3.dll. Il ajoute la sécurité de type et le support pour le refactoring.

-1voto

Je pourrais y ajouter la "vérification du comportement". Cela semble être la plus grande limitation de Moq, avec laquelle Rhino (pas sûr pour les autres) n'a aucun problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X