Posts mit dem Label Fitnesse werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Fitnesse werden angezeigt. Alle Posts anzeigen

Montag, 1. November 2010

Q277: Was ist der Unterschied zwischen einem einem Schnitzel in Cornflakespanier und Concordion?

02:10 - Senile Bettflucht treibt mich aus dem Bett. Auch gut, so hab ich wenigstens Zeit um zu arbeiten. Seit längerer Zeit schon arbeite ich an einem Artikel für den ATB-Insider zum Thema Tools für Acceptance Test Driven Development (aka ATDD).

Aus dem Grund steht schon seit langem auf meiner ToDo-List: Concordion anschauen!

Concordion ist eine interessante Alternative zu FIT. Ähnlich wie bei FIT, verwendet Concordion HTML-Dokumente als ausführbare Spezifikation und benötigt Fixtures um die Business-Logik zu testen. Im Gegensatz zu FIT können Concordion-Spezifikationen im Given-When-Then-Format geschrieben sein.

Die Instrumentierung von Concordion-Spezifikationen erfolgt durch die Definition von Testvariablen, Ausführung von Fixture Code und dem Vergleich von Ergebnissen.

Also, ready to face Concordion. Kaffeemaschine anwerfen, doppelten Espresso runter drücken, Netbook aufklappen und a bissal googln.

Meine Mutter fragt mich immer was Google kann was die gelben Seiten nicht können. Ob es wohl eine gelbe Seite gibt zum Thema Concordion? Ich finde auf Seite 356 das Schloss Concordia im 11. Bezirk. Dort gibt’s Schnitzel in Cornflakes paniert aber kein Acceptance Test Driven Development. Thema gelbe Seiten damit abgehakt.

Nachdem mir die Evaluierung von FIT graue Haare gekostet hat, bin ich darauf vorbereiten das es dieses mal wieder so wird. Ich sag nur: Scheiß Classpath, scheiß Klassennamen.

Auf der Concordion-Homepage entdecke ich dass außer Java auch Ruby, Python und .NET unterstützt wird. Python ist vielleicht mein Jetzt-lerne-ich-was-neues-Spielzeug über die Weihnachtsfeiertage. Bevor ich mich aber mit .NET beschäftige häng ich lieber in Apetlon tot über’n Zaun. Und Ruby? Das geht runter wie Honig. Ja ich mach’s in Ruby.

Los geht’s. Installation von Concordion mit Ruby ist ein Klacks. Wirklich. Gem anwerfen, 15 Sekunden später meldet das System:



Fein. Jetzt die Spezifikation in HTML schreiben.























So, jetzt die Business Logik schreiben. Die halten wir kurz und einfach und packen Business Logik und Testfixture in eine Klasse. Wir wollen dann ja auch Refactoring betreiben.
















Noch das Startscript schreiben unnd anwerfen. Das Ergebnis kann sich fast sehen lassen. Klar das es rote Bereiche gibt, ist ja die Spezialbehandlung für Bat Man noch nicht implementiert.

















So, Business Logik anpassen. In Ruby kostet mich das einen Lacher, in Java würde ich heulen und das System verfluchen.












Fein, alles im grünen Bereich.



















Concordion installiert, Spec geschrieben, Ruby-Code geschrieben, Ruby-Code verfeinert. Alles in 90 Minuten.

Ich gehe schon lange damit schwanger unsere SLA-Berechnung durch automatische Acceptance Tests abzusichern. Jetzt hätte ich das passende Framework dafür.

Dazu gibt’s jetzt zwei Möglichkeiten: Entweder Fixture-Code in Java schreiben (Würg!!!) oder unsere ganze Applikation in Ruby umschreiben.

Ich werde morgen gleich einmal mit der-lebenden-Testbasis darüber reden. Worüber?

Eh klar oder?

Mittwoch, 13. Januar 2010

Q90: Jetzt geh ich nach Hause...


Yes, yes,yes. Ich habe es endlich geschafft. Ich habe Fitnesse zum laufen gebracht. Und wieder galt: "Kaum macht man es richtig, funktioniert es!", wer braucht schon einen Bären (Q79). Einfach die Anleitung 1:1 (aber wirklich Punkt für Punkt und Beistrich für Beistrich) umsetzen. Und vor allem den Klassennamen richtig schreiben. Weil "Mytest" ist nicht gleich "myTest"!!!!!!

So und jetzt zu DLTB der soll mir schnell einen Java-Wrapper für die SLA-Berechnung schreiben ("Homma eh glei, oder?") und ich rationalisiere mich selbst weg.

Sonntag, 3. Januar 2010

Q79: Keiner versteht mich!

Seit 2 Stunden bin ich jetzt schon auf Fehlersuche. I kriag an Anfall. Nachdem ich ja total Rubygeil bin versuche ich FitNesse und Ruby zu verheiraten. An und für sich ganz leicht. Ich gehe Punkt für Punkt die Anleitung durch, beim Ausführen sagt mir das Ding das es meine Testklasse nicht findet. Hat scheinbar etwas mit dem Classpath zu tun.

Ich versuche alles. Path relativ, absolut, in Hochkomma, mit Slash, mit Backslash, mit Slash am Ende, mit Backslash am Ende. Dann kopiere ich die Klasse überall hin wo ich der Meinung bin das gesucht werden könnte. Ab jetzt herrscht blanke Anarchie, es regiert die Verzweiflung. Sch§$§%, es funktioniert nicht. Google, Ruby-Forum und Co. bringt keinen Erfolg. Ich finde zwar jede Menge Ratschläge, aber keiner bringt etwas. TheBoss würde jetzt sagen: „Erzähle es dem Bären!“. Was damit gemeint ist?

Das kennt doch jeder. Du suchst stundenlang einen Fehler und findest ihn nicht. Sobald du einen Kollegen zu Rate ziehst hast du den Buchstabendreher, das fehlende Komma oder „was auch immer die Fehlerursache ist“ in Null-Komma-Nix entdeckt. Dein erster Gedanke: „Pau, eh. Is des beinlich. Häd i nua drei Minutn lenga gsuacht!“. Es geht einfach nur darum einen Schritt zurück zu treten und Abstand zu gewinnen. Jeder der Fraggles hat einen kleinen Plüschbären auf seinen Schreibtisch stehen, dem er sein Leid mitteilen kann. Daher der Spruch: „Erzähle es dem Bären!“. Nachdem ich als Tester in der Hackordnung eine Stufe unter den Fraggles stehe, aber immerhin schon eine Stufe über der Scrumtafel, habe ich natürlich keinen Bären den ich zu Rate ziehen kann. Dafür habe ich Sören-Sörensen (Q12) meinen Schlafgefährten wenn ich Bereitschaft schiebe. Ich pflanz mich also zu Sören auf die Matte und lege los: „Also, alter Schwede. Ich hab da ein Problem. FitNesse findet meine Testfixture nicht. Ich glaube das es ein Classpath-Problem ist. Was soll ich tun?“. Sören schaut mich mit seinen großen Augen an und gibt mir zu verstehen: „Jag talar bara svenska!“ was soviel heißt wie „Ich spreche nur Schwedisch!“. Bin ich eine arme Sau!