Ich bin über den RailsCast #155 von dem immer wieder großartigen Ryan Bates auf Cucumber aufmerksam geworden. Cucumber ist eine Bibliothek für Behavior-Driven-Development (BDD). BDD ist mit Test-Driven-Development (TDD) vergleichbar, nur werden hier nicht die Anforderungen an das System über Tests definiert, sondern über Szenarien, die noch näher am Benutzer bzw. Kunden sind.
Cucumber ermöglicht eine natürlichsprachliche Spezifikation der Software, die Szenarien sind sehr einfach zu schreiben und können gut auch von Kunden oder Benutzern verstanden werden.
Gleichzeitig führt Cucumber den Programmierer durch den Entwicklungsprozeß und forciert eine stark fokussierte Entwicklung. Unnötige Komplexitäten können so gut vermieden werden, ganz nach dem Motto “You ain’t gonna need it”.
Rails-Anwendungen können sehr gut mit Webrat, einem headless Browser, getestet werden. Da ich im Moment an einer REST API bastle und die bei Webrat mitgelieferten Steps, das sind die einzelnen Schritte die nach und nach von Cucumber ausgeführt werden, das nicht unterstützen, hier einfache Restful Steps die auch auf Webrat basieren.