Was ist das beste BDD-Framework für die Arbeit mit ASP.NET MVC 2 + C # 4?

7

Ich habe gerade von BDD gehört, als ich das Video von Scott Guthrie in Schweden . Einer der Hörer fragte Scott, wie VS2010 und ASP.NET MVC BDD unterstützen.

Danach suche ich nach BDD (behavior driven development) , die sich mehr auf die Spezifikation als auf Komponententests konzentrieren TDD (Test Driven Development) . Ich habe ein Framework gefunden, das mit Ruby und Java funktioniert. Aber ich habe kein berühmtes Framework für .NET.

Bitte schlagen Sie mir BDD Framework und summarische PROs / CONs davon vor.

PS. Vorgeschlagenes BDD-Framework muss auf .NET 4, C # 4.0 und ASP.NET MVC 2 funktionieren.

Danke,

    
Soul_Master 25.12.2009, 03:51
quelle

7 Antworten

13

Ich sehe, diese Frage hat bereits eine Antwort, und ich habe NBehave nicht versucht. Aber wir verwenden MSpec (Machine.Specifications) für dieses ziemlich große Enterprise-Projekt und es funktioniert hier ziemlich gut . Sehr erwähnenswert.

Rob Conery hat ein EXCELLENT-Video zu Learning BDD gemacht, wo er MSpec Zeile für Zeile benutzt: (Link entfernt, nicht mehr verfügbar, aber suchen Sie danach)

Mehr über MSpec von Rob Conery und warum er es benutzt.
Ссылка Vielleicht möchtest du auch seine anderen Beiträge lesen, die mit BDD getaggt sind.

Pros:

  • Ermöglicht das schnelle "Stubben" Ihrer gesamten Story, Scenerios, Kontexte und Spezifikationen - ohne eigentlichen Code. Konzentrieren Sie sich auf das gesamte "Verhalten", das der Zweck von BDD! Ist, ohne sich Gedanken über den Code zu machen und ihn kompilieren zu müssen.
  • Erzeugt einen EXCELLENT-HTML-Bericht mit "& lt; - NICHT IMPLEMENTIERT" neben Stub-Spezifikationen. Ich gebe diesen Bericht oft an: Der Kunde (CEO und CTO), die Tester, neue Ressourcen, die ich in das Projekt einbringe, und alle anderen, die wissen wollen, wie die Software funktioniert - ohne dass ich eine Codezeile zeigen muss!
  • TestDriven.NET-Runner sind in MSpec mit der neuen tdnet-Verknüpfung (keine Einrichtung!) enthalten.
  • Das [Behaviors] -Attribut macht zusammen mit seinem Delegierungstyp Behaves_like das Kopieren vorhandener Spezifikationen von einem Szenario in ein anderes Szenario zu einem Kinderspiel.

Nachteile:

  • Wenig bis keine Dokumentation, obwohl nicht viel benötigt wird (siehe Videos oben). Der Autor hat kürzlich um Hilfe bei der Dokumentation gebloggt.
  • Immer noch neu und nur ein Nebenprojekt des Autors (nicht sein Hauptauftritt). Aber ab diesem Post ist es sehr aktiv.

Ich hoffe, das hilft.

    
eduncan911 18.01.2010, 06:52
quelle
8

Ich würde empfehlen SpecFlow zu testen. Es ist seltsam, dass niemand es erwähnt hat. Es gibt einen tollen Artikel hier über mit BDD mit Specflow und Asp.Net MVC Es ist Open Source und wird auf GitHub gehostet

Spec Flow verwendet die GWT-Syntax (Given When Then), die ich persönlich sehr mag. Bisher hatten wir großen Erfolg, da BDD nun versucht, SpecFlow zu implementieren. Es ist noch früh, aber bis jetzt läuft es gut.

Pros:

  1. Integriert in VS2008 & amp; VS2010 mit einem schönen Plugin
  2. Verwendet das beliebte When When Dann-Vokabular
  3. Verwendet den Standard NUnit Test Runner
  4. Mit der Feature-Datei können Sie einfach Szenarien aus Business Analysts einfügen

Nachteile:

  1. Der Feature-Code dahinter ist ein bisschen hässlich, aber nichts zu schlecht
  2. Soweit ich weiß, ist das Berichtsformat ziemlich begrenzt (ich benutze nur NUnit)

Ich ermutige Sie, es zu versuchen.

    
danswain 12.05.2010 19:10
quelle
6

Ich habe StoryQ entwickelt, nachdem ich entschieden habe, dass Sie nicht viel von einem Framework brauchen. Es ist sehr leicht, bettet sich in Ihren vorhandenen Test-Runner ein, Sie können es unter Ссылка

ausprobieren     
Rob Fonseca-Ensor 05.02.2010 17:21
quelle
1

Haben Sie sich NBehave angesehen? Sie sollten sich wahrscheinlich auch diese alte Frage ansehen . Aber ich möchte auch hinzufügen, dass es möglich ist, BDD mit jedem Unit-Testing-Framework zu betreiben. Eine einfache Methode ist, Ihre "Testklasse" etwas wie "Given_X" zu nennen und dann all Ihre "Testmethoden" Namen wie "It_should_Y" zu haben.

    
Cellfish 25.12.2009 07:18
quelle
0

Storevil

Sehr leicht Ссылка

    
Carlo V. Dango 01.04.2012 23:09
quelle
0

Kennst du das Video von Goiko Adzic über BDD in einfacher Sprache mit Concordion.NET ?

>

Ссылка

    
user3632158 20.05.2014 18:23
quelle
0

Versuchen Sie Folgendes: Ссылка Es funktioniert mit NUnit, bietet aber eine Syntax wie Jasmine oder Jest in JavaScript in Given / When / Then und Arrange / Act / Assert Styles

    
Hennadii Lutsyshyn 07.02.2018 19:53
quelle

Tags und Links