Frage

Ich habe das Forum suchen und nicht finden, eine ähnliche Frage. Ich suche eine endgültige Entscheidung über unsere Mockframework der Wahl vorwärts als Best Practice bewegen zu machen - ich habe auf Moq ... bis ich beschlossen, erst vor kurzem entdeckt MS hat endlich einen Mockframework genannt Moles geschaffen, die ähnlich zu funktionieren scheint zu TypeMock über die Profiler API sexyness etc ..

Es gibt eine Million 'NMock vs Moq vs TypeMock vs Rhino ....' Themen hier. Aber ich sehe Moles involved.In Tatsache nie, habe ich nicht einmal, ob seine Existenz bis vor kurzem. Jeder, der es? In Produktion? Jeder Dump ihre alten Mockframework für sie, und wenn ja, welche? Wie kam es zu vergleichen, Ther spöttischen Frameworks Sie verwendet haben?

Dank .. ps verwenden wir VS2008 und bewegen sich bis 2010 kurz.

War es hilfreich?

Lösung

Ich bin in dem gleichen Szenario, das Sie in sind, so dass ich zu kommentieren meine Erfahrungen mag.

Sowohl Typemock und Moles haben das Ziel der Isolation im Auge behalten. Speziell für diese nervigen versiegelten Klassen, nicht-virtuelle Methoden.

Ich glaube, einen Isolationsrahmen, wie oben erwähnte, benötigt werden, vor allem wenn man in den späteren Phasen der Entwicklung und / oder hat keine / wenig Kontrolle der Code-Basis.

Das sind die Vorteile in Typemock, habe ich noch nicht mit Moles entdeckt

  • Unterstützung für Code-Coverage-Tools (NCover und Partcover)
  • Unterstützung zu Intercept / verify auf Gemeinen (Methoden / Eigenschaften) [ja das ist umstritten]
  • Mehr poliert Produkt, und läuft schnell mit der intuitiven API (noch mit Moles sogar Arbeit richtig durcheinander)

Ich hoffe, Moles in freigegebenem Produkt reift, aber der Anfang meiner Bastelei mit scheint es nicht anders als andere MS Forschungsprojekte zu sein; in der Regel ungeschliffen, aber das scheint die Natur dieser Art von Projekten zu sein.

Andere Tipps

ich denke, Mole auf die nächste Stufe spöttisch nehmen, es ist viel mächtiger.

Was meinst du mit ‚in Produktion‘ ?. Moles sind in Unit-Tests nur nützlich. Es hat eine ernsthafte Auswirkungen auf die Leistung und erlaubt es auch unsicheren Code in der Produktion (je darüber nachgedacht, eine IsAuthorized Funktion ersetzen true zurück?).

Moles sind sowohl geeignet für 2008 und 2009.

Hope Ihre Frage damit beantwortet.

wird Moles intern bei Microsoft von mehreren Produktteams verwendet.

Nun, sein kann, gibt es nur wenige Threadingprobleme, die in zuzuschneiden scheinen zwischen, es ist sehr schwer zu repro. Es stürzt im Grunde VS 2010, wenn Sie einmal versuchen, einen Haltepunkt in der beigefügten Prozess zu setzen. Es geschah einige Male für mich nicht nur auf nur eine Maschine, aber später aus unbekannten Gründen dissappeared.

Wie der Umweg geschieht das Debuggen ist ein Tanz zwischen Ihrem Code und Umweg, die schwierig sein könnte, mit zunächst zu bewältigen und wenn es Ausnahme während eines solchen dann seine nur schwer auf die Ausnahme zu brechen.

Die automatisch generierten Tests und PUTs- seine diificult zu begreifen, was Botschaft, die sie also sollte das Codierungsmuster geändert werden versuchen zu vermitteln oder etwas anderes als obwohl er versucht, parametrisierte Test basierte auf der Schnittstelle zu erzeugen, sondern abhängig von der Klasse unter Test, auuto gen PUTs ist vielleicht nicht der beste Weg, Hebel Tests parametriert.

Insgesamt gibt es eine Lernkurve und der Rahmen wird auch einige Zeit dauern, um zu reifen. Positiv ist, dass Konzept ist gut und maintaince Kosten (wenn es richtig implementiert) und die Reaktionszeit vom Team PEX Unterstützung ist wirklich positiv, manchmal erhalten Sie hilfreiche Antwort innerhalb von 2 Stunden auf dem PEX-Forum.

Mit freundlichen Grüßen Yogesh Pawar

Moles und Pex ist Paradigmenwechsel !! sein zu viel von einem freien frameowrk zu erwarten. Bisher habe ich nicht kommen über einen Grund, es nicht zu benutzen, wenn Sie Cross-Technologie Codebasis haben, aber solange es .net I Mole und Pex ist definitiv die Antwort !!

Wenn durch „in Produktion“ Sie es auf einem Produkt verwenden bedeuten, dass in der Produktion verwendet wird dann absolut!

Wir sind mit Moles zu isolieren Funktionalität in unseren Unit-Tests auf ein sehr hohes Profil-Projekt für Unternehmen wie Google und McDonalds. Natürlich sind Unit-Tests nicht auf dem Produktionsserver laufen, so wird Moles nie zur Produktion eingesetzt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top