Gibt es Teams mit TypeMock? Ist es das saftige Preisschild wert? [geschlossen]

8

Ich hoffe, dass diese Frage nicht "umstritten" ist - ich frage mich nur - hat jemand hier TypeMock gekauft und war glücklich (oder unglücklich) mit den Ergebnissen?

Wir sind ein kleiner Entwickler-Shop von nur 12 Entwicklern, einschließlich der 2 Entwickler. Wir haben bisher NMock benutzt, aber es gibt Einschränkungen. Ich habe recherchiert und angefangen mit TypeMock zu spielen und ich liebe es. Es ist eine super-cleane Syntax und Sie können grundsätzlich alles nachspielen, was für Legacy-Code großartig ist.

Das Problem ist - wie berechtige ich meinen Chef, 800-1200 $ pro Lizenz für eine API auszugeben, die 4-5 Konkurrenten hat, die komplett kostenlos sind? 800-1200 $ kostet Infiristrics oder Telerik pro Lizenz - und da gibt es sicher nicht 4-5 Open-Source-vergleichbare UI-Frameworks ... Deshalb finde ich es etwas überteuert, wenn auch eine tolle Bibliothek ...

Alle Meinungen / Erfahrungen werden sehr geschätzt.

BEARBEITEN: Nachdem ich MOQ gefunden hatte, dachte ich, dass ich mich verliebt habe - bis ich herausfand, dass es in VB.NET nicht vollständig unterstützt wird, weil VB keine Lambda-Unterroutinen hat. NET? Das Problem ist, wir sind ein gemischter Shop - wir verwenden C # für unsere CRM-Entwicklung und VB für alles andere. Jede Führung wird wieder sehr geschätzt

Bearbeiten: hmm .. Ich kann nicht finden Isolate.WhenCalled () Äquivalenz in Moq ... Irgendwelche Hilfe hier? Ich möchte eine ReadOnly-Eigenschaft eines CONCRETE-Objekts (nicht eines verspotteten Objekts) stub / mock out ... Ich könnte dies leicht mit Isolate.WhenCalled mit TM tun. Wie mit Moq ???

    
dferraro 04.03.2010, 01:51
quelle

2 Antworten

9

Das Projekt, in dem ich bin, hat viele Monate lang TypeMock benutzt. Wir sind gerade dabei, es komplett zugunsten von Moq (vollständig kostenloses Apache 2.0-lizenziertes Mocking-Framework) auslaufen zu lassen. Sie sollten Moq auf jeden Fall ausprobieren, wenn Sie es nicht gesehen haben. Zusätzlich zu der intuitivsten Syntax jedes Spottwerkzeugs, das ich gesehen habe, erhalten Sie die Vorteile der Kompilierzeit-Typprüfung. Sehr nett.

TypeMock hat einen signifikanten Vorteil gegenüber Moq, wie ich es sehe. Nämlich, es kann alles nachmachen. Dies schließt versiegelte Klassen, nicht-virtuelle Methoden, konkrete Typen und so ziemlich alles andere ein, was man darauf werfen kann. Wenn Sie mit ASP.Net arbeiten und abhängig davon, wie Ihr Code strukturiert ist, kann ASP.Net-Code hinter Klassen eine Möglichkeit darstellen. Ganz ordentlich.

Allerdings - Wir haben festgestellt, dass, wenn Sie Ihren Code gut strukturieren, die Vorteile von TypeMock den Preis nicht überwiegen. Wenn Sie mit Moq nicht etwas nachahmen können, bedeutet das wahrscheinlich, dass dort ein Geruch ist. Mit TypeMock kannst du faul sein und ich denke, dass der Code darunter leiden kann. Moq und andere spöttische Frameworks wie es (RhinoMocks kommt einem in den Sinn) lassen dich über deinen Code nachdenken, während du ihn schreibst, besonders in Bezug auf Testbarkeit, aber ich würde behaupten, dass das eine gute Sache ist :) Außerdem lief unser Team zu mehrere Probleme, TypeMock auf unserem Continuous Integration Server zu implementieren.

Kurz gesagt, TypeMock ist ein sehr mächtiges Werkzeug. Wie Sie bereits erwähnt haben, gibt es für den Test von altem Legacy-Code nicht viele bessere Produkte. Aber 1000 Dollar bekommen Sie eine TypeMock-Lizenz, ODER, ein paar Resharper-Lizenzen, fast zehn TD.Net-Lizenzen, einen neuen Continuous Integration Server oder viele andere Dinge. Meine eigenen Erfahrungen deuten darauf hin, dass es sich nicht lohnt, aber Ihre Laufleistung kann variieren!

    
Eric 04.03.2010, 02:14
quelle
2

+1 Erics Antwort - stimme völlig zu.

Es ist ähnlich wie der private Zugriffsmechanismus von MSTest - es besteht eine sehr hohe Wahrscheinlichkeit, dass Sie das Problem falsch betrachten. Wenn du etwas technisches McGyvery benutzen musst, um etwas zu testen, tut jemand etwas Falsches.

Natürlich ist das nächste, was als Kontrapunkt herausgegriffen wird, dass es Fälle gibt, in denen jemand bereits etwas falsch gemacht hat (Ja, ich sehe dich an, SharePoint, WebForms und Freunde) und du musst es wirklich tun Machen Sie etwas Komplexes, um mit der aktuellen Situation fertig zu werden.

Kämpfe wie diese können oft ein großer Zeitverzug sein, der dich im Rückblick selten gut fühlen lässt. Es ist ähnlich wie zu sagen "Oooh, ich muss definitiv eine Art von Tests auf diesem, und das einzige, was wird funktionieren, ist UI-Automatisierung, weil wo wir sind". Gehen Sie diese Straße hinunter:

  • zieht Energie weg von einer echten Lösung für das eigentliche Problem - das richtige Testen in verschiedenen Formen und Granularitäten im Laufe der Zeit und angesichts der Tatsache, dass es viele Aufgaben und Techniken zu lernen gibt Der Weg zu einem System, bei dem man sich wohl fühlen kann angesichts des Legacy-Ausgangspunkts, zu dem 97,92% der Projekte auf verschiedenen Stufen beginnen oder darauf ausgerichtet sind

  • Mit
  • erhalten Sie eine Reihe von Tests für codierte UI, mit denen Sie nicht zufrieden sein werden

Noch eine Sache - MSR hat ein Moles-Projekt, das sie in letzter Zeit gepimpt haben, was die gleiche Sache wie TM macht, d. h. das Neuschreiben von Laufzeit über Profiler-Hooks. Könnte nützlich für Leute sein, die das Gefühl haben, dass sie etwas als Backup in ihrem Arsenal haben wollen oder müssen, wenn Sie jemals wirklich mit Moq aus der Straße rausgehen in einem realen Szenario, in dem Sie Ihren Weg nicht verbessern können und an einem besseren Ort landen .

    
Ruben Bartelink 12.03.2010 09:43
quelle