Question

Je commence tout juste à évaluer les structures moqueuses de mon équipe et je me demande si quelqu'un a des indications sur la documentation de référence ou l'expérience que vous pouvez partager concernant le coût de la raillerie lors des tests de performances.

Des liens? Expérience personnelle? Détails appréciés.

Était-ce utile?

La solution 4

J'ai testé des frameworks moqueurs (Moq et TypeMock en particulier). TypeMock est beaucoup plus puissant et flexible, mais comme il s’intègre au framework en tant que profileur, il a un impact significatif sur les performances.

Ma conclusion est que TypeMock est un excellent outil pour les scénarios de test sans charge. Moq est moins flexible ... mais beaucoup plus léger et n'a pas d'effet général sur les performances générales. Avec Moq, vous devez configurer vos applications spécifiquement pour pouvoir simuler les dépendances externes (un exercice de bonne conception, de toute façon), mais il s’est avéré bien plus adapté aux scénarios liés à la charge.

Malheureusement, je n'ai pas enregistré de chiffres réels dans mes tests concernant Moq vs TypeMock, mais le bénéfice de Moq en termes de performances est significatif pour moi.

Autres conseils

IIRC TypeMock utilise l'API Profiler, qui ajoute généralement beaucoup de travail, mais devrait être plus rapide que l'exécution de l'application via un profileur.

NCover utilise également l'API Profiler et semble être assez rapide.

Aaron Jensen a créé un projet test et effectué des tests de performance. http://codebetter.com/ blogs / aaron.jensen / archive / 2008/05/08 / mock-framework-benchmarks.aspx

Je préférerais cependant utiliser l'API et les fonctionnalités, mais les performances peuvent être un problème pour TDD et l'exécution de vos tests de nombreuses fois.

Nous utilisons TypeMock depuis quelques années et, d’après mon expérience, il n’existait pas de frais généraux importants en termes de performances (je suis sûr qu’il existe des frais généraux, ce n’est tout simplement pas un gros problème).

Cependant, en raison de la nature du fonctionnement de TypeMock, plusieurs éléments doivent être pris en compte. Comme TypeMock fonctionne en injectant du code à la volée, les erreurs peuvent parfois être très exotiques. Signaler des erreurs peut donc devenir une tâche ardue. Soyez prêt à creuser dans IL.

D'après mon expérience, il peut être difficile d'expliquer le "développeur moyen". comment fonctionne TypeMock. Cela devient rapidement compliqué et même si leurs outils Trace rendent le dépannage réalisable, cela laisse néanmoins un peu de tâche de support.

De plus, comme TypeMock vous laisse simuler n'importe quoi (sauf mscorlib), vous n'avez pas vraiment besoin d'ajouter les niveaux d'indirection nécessaires à votre code. C'est une fonctionnalité et TypeMock n'est pas vraiment en cause ici. Malgré tout, j'ai vu beaucoup de développeurs essayer de résoudre leurs problèmes en se moquant de tous les côtés au lieu de découpler le code. Cela n'améliore pas la qualité globale du code IMO.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top