c# - Was ist der beste Weg, um BDD / TDD in .NET 2.0 zu implementieren?

Translate

Ich möchte meiner Anwendung eine Testsuite hinzufügen, kann jedoch nicht zu den neueren Testframeworks für .NET 3.5 wechseln.

Hat jemand einen Vorschlag zu guten Test-Frameworks?

This question and all comments follow the "Attribution Required."

Alle Antworten

Dan
Translate

Wir gebrauchenMbUnitundRihno verspottetund sie arbeiten sehr gut zusammen. Wenn Sie TDD ausführen, müssen Sie mit ziemlicher Sicherheit eine Form der Abhängigkeitsinjektion durchführen. Dies kann jedoch manuell erfolgen. Es lohnt sich, einen IoC-Container wie zSchloss Windsor.

Es lohnt sich, sich die Bildschirmabdrücke von John Paul Bodhood anzusehen, um Ihnen den Einstieg zu erleichtern.JPBs Blog

Quelle
Jill Lee
Translate

NUnit und Rhino passen gut und dieAuto-Mocking-Containerkönnte von Interesse sein.

Wenn Sie sich auch BDD ansehen, dannNBehaveist wahrscheinlich eine gute Wahl. Wenn Sie jedoch nur den BDD-Stil meinen, der sich auf Unit-Tests (xSpec) bezieht, obwohl Sie mit dem Hinzufügen eines Frameworks davonkommen können (obwohl Dinge wiespecunitfügen Sie etwas synktaktischen Zucker hinzu), aber vielleicht möchten Sie es sich ansehenMSpecist auch interessant.

Quelle
Translate

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

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

Quelle
Translate

Für eine Mock Object-Bibliothek habe ich die BSD-Lizenz gefundenRhino.Mocksziemlich angenehm sein.

Quelle
Translate

Ich hatte großen Erfolg mitNUnitauch.

Ich habe auch verwendetNMockwenn die Notwendigkeit für Scheinobjekte entstand. Als zusätzlichen Bonus wird die Fabrik zum Erstellen Ihrer Scheinobjekte als Spott bezeichnet.

Um das Ausführen von Unit-Tests zu erleichtern, habe ich verwendetTestDriven.NETUnit-Tests wie codiert ausführen. Auch ich habe verwendetTempomat .NETSVN beobachten und überprüfen, ob jedes neue Commit alle Unit-Tests erstellt und besteht.

Quelle
Translate

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 spöttisches Framework, das kostenlos und Open Source ist. Der Vorteil von Rhino Mocks ist, dass wir keine magischen Zeichenfolgen verwenden müssen, um Ihre Erwartungen zu setzen, wie Sie es in 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 ebenfalls frei verfügbar.

Sie möchten auch sicherstellen, dass alles, was Sie für Ihr Unit-Testing-Framework auswählen, von Ihrem CI (Continuous Integration Server) unterstützt wird. Nunit wird in Cruise Control.NET standardmäßig 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 das Klicken mit der rechten Maustaste und das Ausführen 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 kontrastieren, aber NBehave wird von Gallio vom MBUnit-Team unterstützt. Dies bedeutet, dass Sie Ihre BDD-Tests genauso ausführen können wie Ihre Unit-Tests mit TestDriven.NET.

Ich kann Resharper auch sehr empfehlen. Mit diesem Refactoring- und Anleitungstool können Sie Ihre Produktivität erheblich steigern. Es hilft Ihnen bei der Änderung Ihres Codes, während Sie Ihre Tests entwickeln.

Hoffe das hilft

Quelle
Translate

Ich werde einen Ruf aussprechen müssenMoq. Es ist ein Clean Light Mocking Framework, das Sie in die Grube des Erfolgs führt.

Die in TFS integrierten Testtools sind in Ordnung, erledigen die Arbeit, sind jedoch oft etwas umständlich in der Arbeit. Die generierten Berichte, die Codeabdeckung und einige andere Teile sind besonders schlecht. Sie führen dazu, dass Sie mit 22 statt mit 50 eine Glatze bekommen.

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

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

Quelle
Translate

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

Ich habe es nicht ausprobiert - aber ich würde Kunden raten, die eine große Investition (oder eine starke Präferenz gegenüber dem MSTest-Tool) in nUnit haben und daran interessiert sind, TFS zu implementieren, um mit nUnit fortzufahren, anstatt zu versuchen, alle ihre zu konvertieren bestehende Tests.

Quelle
Translate

NUnitist verfügbar unterhttp://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-Voransichten, die eine deutliche Bewegung in die richtige Richtung zeigen, damit wir alle unsere Stacks an ihre Bedürfnisse anpassen können.

Quelle
Translate

NUnit ist immer ein Favorit von mir. Wenn Sie jedoch TFS als Quellcodeverwaltung verwenden, sollten Sie sich an den Microsoft Stack halten.

Quelle
Eileen Lee
Translate

Ich empfehle folgendes:

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

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

NUnit- Ein Open Source Unit Testing Framework in C #.

Quelle
Translate

Für mein Projekt habe ich NUnit und TestDriven.NET mit großem Erfolg verwendet. Sie können entweder eine separate Bibliothek erstellen, um 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 ichNInjectin meinem aktuellen Projekt und seiner Arbeit großartig. Wenn Sie die Konstruktorinjektion verwenden, müssen Sie Ihren Code nicht mit dem Attribut [Inject] überladen.

Ich habe keine Scheinbibliothek für mein .NET 2.0-Projekt verwendet, aber für ein anderes .NET 3.5-Projekt, das ich verwenden werdeMoq

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

Quelle