Question

J'espère que cette question est « controversée » - Je vous demande simplement au fond - a acheté quelqu'un ici Typemock et été heureux (ou malheureux) avec les résultats

Nous sommes une petite boutique de dev de seulement 12 développeurs dont les 2 gestionnaires de dev. Nous avons utilisé NMock jusqu'à présent, mais il y a des limites. Je l'ai fait des recherches et a commencé à jouer avec Typemock et je l'aime. Il est super propre syntaxe et vous permet de se moquer essentiellement tout, ce qui est excellent pour le code existant.

Le problème est - comment puis-je justifier de mes dépenses de patron 800-1200 $ par licence pour une API qui a 4-5 concurrents qui sont totalement gratuit? 800-1200 $ est combien Infragistrics ou le coût Telerik par licence - et il est sûr que l'enfer ne 4-5 open source cadres de l'interface utilisateur comparable ... Ce qui est la raison pour laquelle je trouve un peu trop cher, mais une bibliothèque impressionnante ...

Toutes les opinions / expériences sont grandement appréciés.

EDIT:. Après avoir trouvé MOQ Je pensais que je suis tombé amoureux - jusqu'à ce que j'ai découvert que ce n'est pas entièrement pris en charge parce que VB.NET VB manque lambda sous routines = (Est-ce toute personne qui utilise MOQ pour VB. ? NET Le problème est que nous sommes un magasin mixte -. nous utilisons C # pour le développement de notre CRM et VB pour tout le reste tout guidence est très apprécié à nouveau

Edit: hmm .. Je ne peux pas trouver Isolate.WhenCalled () équivalen à Moq ... Toute aide ici? Je veux stub / railler une propriété ReadOnly d'un objet concret (non d'un objet moqué) ... Je pourrais facilement le faire avec Isolate.WhenCalled avec TM. Comment avec Moq ???

Était-ce utile?

La solution

Le projet que je suis sur Typemock utilisé pendant plusieurs mois. Nous avons en fait l'élimination progressive juste complètement terminé, il en faveur de Moq (entièrement gratuit Apache 2.0 cadre moqueur sous licence) . vous devriez certainement vérifier Moq si vous ne l'avez pas vu. En plus d'avoir la syntaxe la plus intuitive de tout outil moqueur que je l'ai vu, vous obtenez les avantages de la vérification du type de compilation. Très agréable.

Typemock a un avantage significatif sur Moq comme je le vois. A savoir, il peut se moquer de quoi que ce soit. Cela comprend des classes scellées, des méthodes non virtuelles, les types de béton et à peu près tout ce que vous pouvez jeter. Si vous faites ASP.Net, et selon la façon dont votre code est structuré, il peut effectivement faire se moquant du code ASP.Net derrière les classes une possibilité. Tout à fait propre.

Cependant - Nous avons constaté que si vous structurez votre code bien, les avantages de Typemock ne l'emportent pas sur le prix. De plus, si vous ne pouvez pas se moquer de quelque chose avec Moq, cela signifie probablement qu'il ya une odeur là. Typemock vous permet d'être paresseux, et je pense que le code peut souffrir en conséquence. Moq et d'autres cadres moqueurs comme il (RhinoMocks vient à l'esprit) faites-vous pensez à votre code que vous écrivez, surtout en termes de testabilité, mais je dirais que c'est une bonne chose :) De plus, notre équipe a couru pour plusieurs maux de tête en essayant de déployer Typemock à notre serveur d'intégration continue.

Longue histoire courte, Typemock est un outil très puissant. Comme vous le mentionnez, pour le code héritage ancien tests unitaires, il n'y a pas beaucoup de meilleurs produits. Cependant, 1000 dollars vous obtient une licence de Typemock, OR, deux licences de ReSharper, près de dix licences de TD.Net, un nouveau serveur d'intégration continue ou bien d'autres choses. Ma propre expérience suggère qu'il ne vaut pas, mais votre kilométrage peut varier!

Autres conseils

1 réponse de Eric - complètement d'accord.

Il est semblable à un mécanisme de accesseurs privé MSTest - il y a une très forte chance que vous regardez le faux problème. Si vous finissez par avoir à utiliser une technique McGyvery pour tester quelque chose, quelqu'un est quelque chose de mal.

Bien sûr, la prochaine chose qui se trottait comme un contrepoint est qu'il ya des cas où une personne a déjà fait quelque chose mal (Oui, je vous regarde, SharePoint, WebForms et amis) et vous avez vraiment besoin de faire un peu complexe pour faire face à la situation telle qu'elle est en ce moment.

batailles comme cela peut souvent être un énorme TimeSink qui, rétrospectivement, vous fait rarement sentir bien. Il est semblable à dire « Oooh, je besoin d'obtenir une certaine forme de tests à ce sujet, et la seule chose qui va travailler est l'automatisation de l'interface utilisateur en raison de l'endroit où nous sommes. » En descendant cette route:

  • tire l'énergie loin d'une solution réelle au problème réel - obtenir les tests appropriés tout le long de différentes formes et granularité au fil du temps et face au fait qu'il ya beaucoup de wrok à faire et des techniques pour apprendre sur la route d'avoir un système que vous pouvez sentir à l'aise le point de départ compte tenu de l'héritage que 97,92% des projets commencent à partir ou tendent vers à divers stades

  • vous laisse avec un ensemble de 'tests de l'interface utilisateur Coded' que vous ne serez pas heureux avec

Une chose - MSR a un projet Moles ils ont été proxénétisme ces derniers temps qui fait le même genre de chose que TM, à savoir, la réécriture d'exécution via des crochets profileurs. Peut-être utile pour les personnes qui se sentent qu'ils veulent / ont besoin d'avoir quelque chose dans leur arsenal comme sauvegarde si jamais vous avez vraiment la route avec Moq dans un scénario monde réel que vous ne pouvez pas refactoring votre chemin sur et se retrouvent dans un meilleur endroit .

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