Frage

Ich möchte meiner Anwendung eine Testsuite hinzufügen, kann jedoch nicht auf die neueren Testframeworks für .NET 3.5 umsteigen.

Hat jemand einen Vorschlag für gute Test-Frameworks?

War es hilfreich?

Lösung

Wir gebrauchen MbUnit Und Rihno Mocks und es zeigt sich, dass sie sehr gut zusammenarbeiten.Wenn Sie TDD ausführen, müssen Sie mit ziemlicher Sicherheit eine Form der Abhängigkeitsinjektion durchführen. Dies kann zwar manuell erfolgen, es lohnt sich jedoch, einen Blick auf einen IoC-Container wie z Schloss Windsor.

Es lohnt sich auf jeden Fall, einen Blick auf die Screencasts von John Paul Bodhood zu werfen, um Ihnen den Einstieg zu erleichtern. JPBs Blog

Andere Tipps

NUnit und Rhino passen gut und die Container mit automatischer Verspottung könnte von Interesse sein.

Wenn Sie sich auch BDD ansehen NBenimm dich ist wahrscheinlich eine gute Wahl.Wenn Sie jedoch nur den BDD-Stil meinen, der sich auf Unit-Tests (xSpec) bezieht, können Sie mit dem Hinzufügen eines Frameworks davonkommen (obwohl Dinge wie specunit fügen Sie etwas syntaktischen Zucker hinzu), aber vielleicht möchten Sie einen Blick darauf werfen MSpec ist auch interessant.

Schauen Sie sich Rob Conerys Screencast zu BDD mit MSpec an.Sehr beeindruckend http://blog.wekeroad.com/mvc-storefront/kona-3/

bearbeiten:Ich verwende jetzt diesen Ansatz: http://10printhello.com/the-one-bdd-framework-to-rule-them/

Für eine Mock-Object-Bibliothek habe ich die BSD-lizenzierte gefunden Rhino.Mocks eher erfreulich sein.

Ich hatte großen Erfolg damit NUnit sowie.

Ich habe es auch verwendet NMock als der Bedarf an Scheinobjekten entstand.Als zusätzlichen Bonus heißt die Fabrik zum Erstellen Ihrer Scheinobjekte Mockery.

Um die Ausführung von Unit-Tests zu erleichtern, habe ich verwendet TestDriven.NET um Unit-Tests auszuführen, während ich codiert habe.Außerdem habe ich verwendet Tempomat .NET um SVN zu beobachten und zu überprüfen, ob jedes neue Commit alle Unit-Tests erstellt und besteht.

Dies ist wahrscheinlich eine Zusammenfassung dessen, was bereits gesagt wurde, aber für TDD verwende ich persönlich Rhino Mocks und MBUnit.Rhino Mocks ist ein Mocking-Framework, das kostenlos und Open Source ist.Der Vorteil von Rhino Mocks besteht darin, dass wir keine magischen Schnüre verwenden müssen, um Ihre Erwartungen festzulegen, wie Sie es bei NMock tun.

Ich mag MBUnit, weil MbUnit das Konzept von RowTests hat, mit denen Sie Ihre Eingaben für Ihre Testmethode variieren können.MBUnit ist auch frei verfügbar.

Sie möchten außerdem sicherstellen, dass alles, was Sie für Ihr Unit-Testing-Framework auswählen, von Ihrem CI (Continuous Integration Server) unterstützt wird.Nunit wird standardmäßig in Cruise Control.NET unterstützt und Sie müssen ein wenig zusätzliche Arbeit leisten, damit MBUnit in ccnet funktioniert.

Aus IDE-Sicht müssen Sie über TestDriven.NET verfügen.TestDriven.NET ermöglicht Ihnen einen Rechtsklick und die Ausführung von Tests in der IDE und unterstützt MBUnit und Nunit und andere.

NBehave ist die BDD-Bibliothek, die ich verwendet habe.Ich habe keine anderen verwendet, daher konnte ich sie nicht mit Ihnen vergleichen und gegenüberstellen, aber NBehave wird von Gallio vom MBUnit-Team unterstützt, was bedeutet, dass Sie Ihre BDD-Tests genauso ausführen können wie Ihre Unit-Tests mit TestDriven.NET.

Ich würde Resharper auch wärmstens empfehlen.Mit diesem Refactoring- und Beratungstool werden Sie feststellen, dass Ihre Produktivität erheblich steigt.Es unterstützt Sie bei der Änderung Ihres Codes während der Entwicklung Ihrer Tests.

Hoffe das hilft

Ich werde einen Schrei aussprechen müssen Moq.Es handelt sich um ein klares Spott-Framework, das Sie in die Tiefe des Erfolgs führt.

Die in TFS integrierten Testtools sind in Ordnung, sie erledigen die Arbeit, können aber oft etwas umständlich in der Handhabung sein.Besonders schlecht sind die generierten Berichte, die Codeabdeckung und ein paar andere Teile, die dafür sorgen, dass man mit 22 statt mit 50 eine Glatze bekommt.

Wenn Sie das Testen wirklich lieben, sollten Sie eine kontinuierliche Integration ausprobieren.Sie werden den Schmerz der Regression schnell spüren und möglicherweise schneller zum Endziel gelangen.

Unabhängig davon, was Sie tun, probieren Sie ein paar aus und finden Sie heraus, welches am natürlichsten ist, wenn Sie Zeit haben.Viel Glück und viel Spaß beim Codieren.

Die Verwendung von nUnit mit TFS ist nicht allzu schwierig.Es gibt sogar ein Projekt auf Codeplex, um dies zu implementieren: NUnit für Team Build wodurch die Ergebnisse sogar im Lager „veröffentlicht“ werden.

Ich habe es noch nicht ausprobiert – aber ich würde Kunden, die eine große Investition in nUnit tätigen (oder eine starke Präferenz dafür gegenüber dem MSTest-Tool haben) und an der Implementierung von TFS interessiert sind, raten, mit nUnit fortzufahren, anstatt zu versuchen, alle zu konvertieren vorhandene Tests.

NUnit ist erhältlich unter http://www.nunit.orgIch würde dies auch bei der Arbeit am MS-Stack vorschlagen – die Unterstützung für Nicht-MS-Frameworks erfolgt in den MVC-Vorschauen, was eine eindeutige Bewegung in die richtige Richtung zeigt, damit wir alle unsere Stacks entsprechend anpassen können.

NUnit ist immer einer meiner Favoriten.Wenn Sie jedoch TFS als Quellcodeverwaltung verwenden, empfehle ich Ihnen, beim Microsoft Stack zu bleiben.

Ich empfehle Folgendes:

TestDriven.NET - Unit-Testing-Add-on für VS, das vollständig in alle wichtigen Unit-Test-Frameworks integriert ist, einschließlich NUnit, MbUnit usw.

Typemock-Isolator- Ein spöttischer Rahmen für .Net Unit Testing

NUnit – Ein Open-Source-Unit-Test-Framework in C#.

Für mein Projekt habe ich NUnit und TestDriven.NET mit großem Erfolg verwendet.Sie können entweder eine separate Bibliothek erstellen, um nur Ihren Testcode zu hosten, oder Sie können ihn in Ihre ausführbare Datei oder Bibliothek einfügen.Es hängt alles davon ab, ob Ihr Produktionscode mit Ihrem Testcode verflochten sein soll.

Für die Abhängigkeitsinjektion verwende ich NInject in meinem aktuellen Projekt und es funktioniert großartig.Wenn Sie die Konstruktorinjektion verwenden, müssen Sie Ihren Code nicht mit dem Attribut [Inject] überladen.

Ich habe für mein .NET 2.0-Projekt keine Scheinbibliothek verwendet, werde sie aber für ein anderes .NET 3.5-Projekt verwenden Moq

Beachten Sie, dass dies alles mit .NET 2.0 und höher funktioniert.(außer Moq)

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