Vor etwas über einem Monat habe ich meinen ganz eigenen aktuellen "test driven way" vorgestellt. Inzwischen ist die im Screenshot des Testrunners dargestellte Zahl der Tests auf an die 300 gewachsen. Eine nette Zahl, doch ich bin mir sicher bei Abschluss des Projektes (Release) wird sie gut 4-stellig sein.
Eine müßige Angelegenheit, mag man meinen - wenn man sich vorstellt, dass man jeden Test einzeln im vorgestellten Format von Hand tippt:
1:
2: [TestFixture]
3: [Category("Blubr.Domain.Model.User")]
4: public class Wenn_die_Methode_ToSalutation_aufgerufen_wird : ConcernOf
5: {
6:
7: public override void Setup()
8: {
9: }
10:
11: [Test]
12: public void Ist_das_Ergebnis_Dear_Mr_X_wenn_der_User_ein_Mann_ist()
13: {
14: throw new NotImplementedException();
15: }
16:
17: [Test]
18: public void Ist_das_Ergebnis_Dear_Mrs_X_wenn_der_User_eine_Frau_ist()
19: {
20: throw new NotImplementedException();
21: }
22:
23: }
Und zugegeben, ja es ist schon ziemlich nervig und vor allem zeitraubend. Vor allem, weil ich mir angewöhnt habe die "Spezifikation" in Word (vorher Notepad) vorzuschreiben, einfach um sie komplett und ohne einengende Formatierungszwänge (Unterstriche usw.) ausformulieren zu können. Anschließend habe ich den Text dann immer in Visual Studio kopiert und von Hand in eine Testklasse samt Methoden verwandelt.
Neulich habe ich dann in einer Twitter-Diskussion mal laut nachgedacht und gemeint, es müsste doch ein Tool geben, was diese Arbeit automatisch erledigt. Gefunden habe ich keins, aber innerhalb von ein paar Minuten selbst eines zusammengeklickt (im wahrsten Sinne des Wortes).
Herausgekommen ist eine kleine App namens "Word to Code Specifications Converter", die genau das Geforderte tut: sie wandelt den Word-Text nach einem vorgegebenen Format in Code in Form einer Test-Klasse um. Einfach die Spezifikation in Word schreiben, in das Tool kopieren, Button drücken und das Ergebnis ist fertig.
Schritt 1: Text aus Word reinkopieren
Schritt 2: In Test-Code konvertieren
Obwohl es ein Schnellschuss ist und natürlich absolut gruselig und nicht test-getrieben "programmiert" wurde, nutze ich es nun seit zwei Wochen und kann sagen: es funktioniert. Es hat sogar einen Platz in meiner Taskleiste gefunden.
Natürlich enthält es Bugs (Kommas werden z.B. nicht entfernt), aber vielleicht hilft es ja dem ein oder anderen auch bei der Arbeit, weshalb ich es nicht auf meiner Platte verrotten lassen möchte. Anbei also der vollständige Code und die ausführbare .exe.
(Wenn jemand was Vernünftiges draus machen will - nur zu.)
Downloads