Rhino mock vs Typemock vs JustMock vs [fermé]
je dois choisir le cadre simulé au nouveau projet.
Quels sont les avantages et les inconvénients de ces cadres? Tout tableau de comparaison?
Je sais que JustMock est en phase de beta mais c'est très bien en ce moment (très similaire à TypeMock)
Edit: j'ai réussit à Ce propos de MME de la Mole?
6 réponses
avant il y avait JustMock cette question a été posée et les réponses peuvent être trouvées ici . Il y a un très bon comparaison moqueuse de cadre - il n'a pas JustMock encore, mais vous obtenez de voir la syntaxe et les capacités de chaque .net moquerie cadre.
RhinoMocks (et Moq ) sont tous deux open source libre d'utiliser des projets qui peuvent créer de faux objets en héritant le type - ce qui signifie qu'ils ne peuvent pas simuler des méthodes statiques, des structures et des classes scellées.
Typemock Isolator utilise le profileur CLR pour intercepter les appels .NET et les changer pendant l'exécution et peut simuler pratiquement tout. Typemock peut également simuler des objets que vous ne pouvez pas "atteindre" à partir du test parce qu'ils sont instanciés à l'intérieur du code de production. Certains l'appellent "magie noire" mais d'autres trouvent la capacité de simuler pratiquement tout - y compris la 3ème les bibliothèques de parti et le code d'héritage-un must.
JustMock est un nouveau joueur et en ce moment seulement en Beta - il a un peu de Typemock Isolator et peut fonctionner sans L'API profiler - dans ce mode, c'est tout comme RhinoMocks. Il reste à découvrir combien de capacités D'isolateur typographique il possède réellement. Pour l'instant il semble que c'est un bon début dans la bonne direction, mais il reste encore du chemin à parcourir avant de pouvoir être une option valable.
je suis récemment passé de RhinoMocks à Moq .
ont toutes les deux des capacités similaires, mais Moq a beaucoup cleaner API
[clause de non - responsabilité-je travaille à Telerik]
quelques points sur JustMock. Son API est plus similaire à L'API de Moq que celle de RhinoMocks, donc si vous êtes familier avec Moq, vous ne devriez pas avoir de problèmes pour apprendre JustMock. Ce que nous avons essayé de faire mieux à JustMock est d'avoir une meilleure histoire quand on se moque des appels séquentiels par exemple. En outre, comme Quelqu'un déjà mentionné JustMock permet de se moquer des classes statiques et des méthodes / propriétés, classes scellées, méthodes et propriétés non-virtuelles et ainsi de suite en utilisant la même syntaxe de type Moq. Aussi grâce à cela à JustMock il est possible de faire la moquerie partielle.
Btw, la" magie noire " que Dror a mentionné est également possible en utilisant JustMock si vous faites référence directement au Telerik.CodeWeaver.Assemblage crochet, mais malheureusement ce n'est pas documenté pour le moment. Si quelqu'un veut faire ça, il pourrait ouvrir un billet de soutien et nous serons heureux d'aider.
Espérons que cette aide.
aussi check-out Microsoft Moles , un framework d'isolation pour .NET qui permet de remplacer n'importe quelle méthode .NET par un délégué personnalisé.
Moles a une version qui peut être utilisée pour des projets commerciaux et est pris en charge dans Visual Studio 2008 et 2010.
Voir aussi: https://stackoverflow.com/questions/37359/what-c-mocking-framework-to-use/2608634#2608634
je suis en train de tester à L'unité au Moq, et je dois dire que ça marche plutôt bien! - reformuler: Il fonctionne très bien! Je n'ai utilisé aucun des autres cadres de moquerie que vous mentionnez donc je ne peux pas vous donner une comparaison. Mais je peux dire que je suis content d'avoir choisi Moq comme mon premier moqueur. Les expressions lamda sont vraiment jolies et c'est aussi assez léger et facile à lire (la syntaxe record/replay dans la plupart des autres cadres de moquerie ne font pas vraiment votre lisibilité bien)
en outre (et c'est un peu hors sujet) je vais utiliser Ninject dans un proche avenir comme conteneur CIO, et les deux cadres vont main dans la main. Ninject a également Lamda et il fournit même auto-mocking container support pour Moq (en utilisant une extension). Donc, si vous prévoyez également d'utiliser un conteneur CIO, vous pouvez vérifier ceci génial combinaison :]
Je ne vous dirai pas lequel est le meilleur car chacun a ses avantages et ses inconvénients. J'ai toujours utilisé Rhino Mock parce que c'est gratuit et il ya une grande communauté autour et facile de trouver de l'aide.
TypeMock n'est pas libre (je suppose). Cependant TypeMock est génial si vous voulez par exemple tester le code legacy avec des types privés ou statiques de membres. D'autres structures moqueuses ne peuvent pas le faire. Un inconvénient est qu'il ne vous force pas à écrire du code testable qui a d'autres avantages que juste la testabilité.
Je ne connais pas JustMock donc je ne peux pas vous dire comment ça marche.
je vous conseille de tous les essayer et de choisir un un avec lequel vous vous sentez à l'aise. Cependant, si vous avez besoin de tester le code d'héritage, choisissez plutôt que TypeMock.
j'espère que d'autres vous donneront plus de détails.