Hat jemand im .NET-Bereich eine Bibliothek gefunden, die Rubys Gurke (einem für Menschen lesbaren DSL zum Definieren von Anwendungsfallgeschichten, gegen die getestet werden kann) ähnelt?
Antworten:
Sie sollten auch SpecFlow ausprobieren , ein Open-Source-Projekt für BDD mit .NET.
SpecFlow verwendet dasselbe Definitionsformat (Gherkin) wie Gurke, aber Sie können Ihre Schrittdefinitionen in .NET schreiben. Grundsätzlich werden Unit-Test-Klassen (NUnit, MsTest, xUnit usw.) aus Ihren Feature-Dateien generiert, sodass Sie dieselbe Unit-Test-Ausführungs-Engine verwenden können, wie Sie es bei den realen Unit-Tests tun. Auf diese Weise ist es auch einfacher, die BDD-Funktionstests in den Integrationsbuild zu integrieren.
In den letzten Versionen verfügt SpecFlow über eine Syntax-Farbfunktion für Visual Studio 2010 und unterstützt Silverlight und Mono / MonoDevelop.
Sicher. Es heißt Gurke . Es gibt ein Beispiel zum Testen von .NET-Code im Cucumber-Beispielverzeichnis und eine Dokumentation im Cucumber-Wiki für .NET und Mono .
Es scheint 3 Möglichkeiten in diesem Raum zu geben:
Verwenden Sie Gurke und IronRuby. Hier ist ein Blog über einige Schritte, um damit zu beginnen. Der Nachteil scheint die Leistung zu sein. Ich habe Berichte gelesen, die besagen , dass es im Allgemeinen langsamer ist , und andere, die sagen, dass es nur sehr langsam ist, sich zu drehen . Dies ist jedoch alles andere als schlüssig, da sich IronRuby noch in der aktiven Entwicklung befindet.
Verwenden Sie Cuke4Nuke . Ich habe dieses Produkt einige Male empfohlen gehört. Es verwendet tatsächlich reguläres Ruby und Cucumber, führt jedoch Ihren .NET-Code über einen Server aus. Glücklicherweise ist all diese Komplikation transparent, wenn Sie sie verwenden. Cuke4Nuke befindet sich nicht mehr in der aktiven Entwicklung.
Verwenden Sie SpecFlow . Dies ist ein .NET-Port von Cucumber. Aus diesem Grund verfügt es möglicherweise nicht über alle Funktionen von Cucumber und möglicherweise über zusätzliche Funktionen. Das Schöne ist, dass Ruby nicht installiert sein muss.
Derzeit scheint nicht klar zu sein, welche davon die beste Option ist. Persönlich habe ich vor, mit Cuke4Nuke zu beginnen.
Ich habe einen Blog-Beitrag geschrieben, in dem der Prozess beschrieben wird, den ich befolgt habe, um Cucumber mit IronRuby zum Laufen zu bringen: http://hotgazpacho.org/2009/06/cucumber-and-ironruby-it-runs/
StoryTeller ist etwas verwandt, obwohl es nicht ausschließlich BDD ist. Es scheint eine etwas andere Art von Test zu unterstützen, ist aber in .NET geschrieben. Lesen Sie mehr auf Jeremy Millers Blog
BDD in einfachem Englisch kann mit Concordion.NET durchgeführt werden . Die Spezifikationen des erwarteten Verhaltens sind in HTML geschrieben.
Beliebige Sätze beliebiger Struktur können für Concordion.NET-Tests verwendet werden. Zum Beispiel ist es nicht erforderlich, einen Satz wie "Bei einem Bankkonto mit einem Saldo von 10 $, wenn eine Auszahlung von 20 $ eingeleitet wird, schlägt die Transaktion fehl" zu schreiben. Stattdessen kann jede Art von Satz verwendet werden, z. B. "Eine Transaktion von 20 $ schlägt fehl, wenn das Konto nicht genügend Guthaben von 10 $ enthält".
Concordion.NET-Tests werden mit Hilfe von NUnit ausgeführt, das in viele verschiedene Umgebungen integriert ist: https://github.com/concordion/concordion-net
Es gibt auch StoryQ. Dies ist ein entwicklungsorientierter Ansatz für User Stories, mit denen Kunden zurückgemeldet werden können. http://storyq.codeplex.com
StoryQ ist ein portables (Single DLL), eingebettetes BDD-Framework für .NET 3.5. Es wird in Ihrem vorhandenen Testläufer ausgeführt und hilft dabei, eine benutzerfreundliche Testausgabe (HTML oder Text) zu erstellen. Die fließende Benutzeroberfläche von StoryQ erweitert Ihre BDD-Grammatik um starkes Tippen, Intellisense und Dokumentation.
Ich habe einen Artikel unter http://blog.webintellix.com/2009/10/how-to-use-cucumber-with-net-and-c.html, der zeigt, wie man Gurke mit C # verwendet. Die Laufzeiten haben sich mit dramatisch verbessert IronRuby 1.0.