Mein Vortrag bei der DNUG Dresden ist jetzt schon 2 Wochen her, man wie die Zeit verfliegt. Schuldig geblieben bin ich seit dem aber immer noch die gezeigten Materialien und weiterführende Links. Das will ich an dieser Stelle wenigstens halbwegs nachholen und all Denen, die nicht da waren zumindest einen Weg zur Erkenntnis weisen :)

Ich schreibe absichtlich nur „halbwegs“ weil ich es als nicht sonderlich sinnvoll empfinde die Folien oder das ausprogrammierte Beispiel zu zeigen. Die Folien selbst sind ohne Ton nur halb so informativ und das Beispiel ist quasi bereits selbst in Specflow enthalten, dazu aber später mehr.
Den schnellsten Einstieg bekommt man wohl über einen Screencast von Tekpub.com der auch von der Specflow Seite selbst empfohlen wird. Darin wird fast der gesamte Umfang von Specflow anhand der Bowling-Kata gezeigt. Es ist somit auch für die geeignet, die überhaupt erst einmal wissen wollen worum es sich handelt.

Bevor das Framework dann aber in Betrieb genommen und damit gespielt werden kann, bedarf eines Installers der wiederum von der offiziellen Seite geladen werden kann. Wurde dieser ausgeführt, findet man in seinem Visual Studio die im Video angesprochenen Item-Templates und den Editor für die Feature-Files.

All jene die nicht NUnit sondern MS-Test verwenden, sollten zunächst ein Microsoft Testprojekt anlegen. Es ist dabei wirklich wichtig nicht einfach nur eine Klassenbibliothek zu erstellen, weil MS Test sonst rumzickt und sich die Tests nicht ausführen lassen. In genau diesem Projekt muss dann eine app.config erstellt werden. In diese werden dann folgende Einträge eingefügt.

<configSections>
    <section name="specFlow" type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/>
</configSections>
<specFlow>
 <unitTestProvider name="MsTest.2010" />
</specFlow>

Wird nun ein Featurefile angelegt und gespeichert, generiert Specflow automatisch die dafür notwendigen Testmethoden in einer .cs-Datei. Diese Datei enthält, bei richtig angelegter app.config, einen Verweis auf MS Test. Um zu testen ob alles richtig angelegt ist, kann man nun einfach ein Feature-File und eine Stepdefinition anlegen. Beide sollten Beispielcode zum Testen eines Taschenrechners enthalten wodurch alle Tests erfolgreich durchlaufen. Alles Weitere kann man ja dem Video oder der Webseite entnehmen.

Eins noch zum Schluss: Wer mein Blog per RSS abonniert hat weiß bereits, dass ich an einem längeren Artikel arbeite in dem es nicht nur um das Wie, sondern auch um das Warum und Drumherum von Specflow geht. Den hatte ich nämlich letzte Woche versehentlich bereits für einige Stunden frei geschallten obwohl er gerade mal ein paar Formulierungen und halbgarer Wortkombinationen enthielt…

Ein Wermutstropfen noch hinterher: Der Artikel wird nach seiner Vollendung nicht hier im Blog erscheinen sondern in der Dotnetpro :)