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?

2 Kommentare:

Anonym hat gesagt…

Im Concordia gibt es den besten Milchrahmstrudel!!!!!!! Vergiss dein Testframework!

A.

Anonym hat gesagt…

Concordia ist super! Meine Lieblingsspeise: A Eitrige in ana feschen Panier!
Das ist ein Käsekrainer eingewickelt in einem Schweinsschnitzel und das ganze paniert! Hervorragende, leichte Küche!

Was war nochmal das Thema? Testframeworks? Testen wird überbewertet!

frafu