© Excellent backgrounds/Shutterstock.com
Teil 1: Grundlagen, Vergleich mit JUnit

Mit Mr. Spock beim Testeinsatz


Spock ist in der Java-Gemeinde unberechtigterweise wenig bekannt. Aus diesem Grund ist es höchste Zeit, das Testframework hier zu beleuchten und zu zeigen, wie einfach und übersichtlich damit an das Thema Testing herangegangen werden kann.

Was spricht, kurz zusammengefasst, für den Einsatz von Spock als Testframework? Durch die übersichtliche Syntax lassen sich schnell benutzerfreundliche Tests schreiben. Des Weiteren wird in Spock versucht, Boilerplate-Code zu vermeiden, wodurch mit verhältnismäßig wenig Aufwand ein umfassendes Spektrum getestet werden kann. Obwohl Spock einfach erlernbar ist, bietet es bei Bedarf die Flexibilität, eigene Erweiterungen einzubauen, z. B. für das Reporting.

Spock bietet Unterstützung für Unit, Integrations- sowie funktionale Tests. Für funktionale Tests eignet sich insbesondere die Kombination von Spock [1] und Geb [2], auf die im nächsten Artikel dieser Serie eingegangen wird.

Artikelserie

Teil 1: Grundlagen, Vergleich mit JUnit

Teil 2: Kombination mit Geb und weitere Features

Groovy als Basis

Fundament von Spock ist die dynamische Programmiersprache Groovy [3]. Eine der Stärken Groovys ist die Möglichkeit der einfachen Erstellung von Domain-specific Languages (DSL). Das Spock-Framework nutzt eine eigene DSL, die auf die Bedürfnisse des Testens zugeschnitten ist und deren Syntax in diesem Artikel erläutert wird.

Da Groovy auf der JVM basiert, kann Spock natürlich ebenso Java-Code ausführen. Das bedeutet, Spock-Tests können zum einen selbst Java-Code enthalten oder auf die vielen nützlichen Bibliotheken der Java-Welt zurückgreifen. Zum anderen lassen sich aufgrund der JVM-Nähe Java-Anwendungen testen. Das ebenfalls auf Groovy aufbauende Webframework Grails setzt ab der Version 2.3 auf Spock als Standardtestframework.

Spock steht unter der Apache-Lizenz 2.0 und ist damit frei verfügbar. Da es keine schwerwiegenden Probleme gibt, ist das letzte freigegebene Release schon ca. zwei Jahre alt. Der Master Branch auf GitHub [4] ist relativ stabil und kann problemlos zum Einsatz kommen, wenn die neuesten Features bzw. Bugfixes benötigt werden.

Einfacher Einstieg

Wer Spock zunächst ausprobieren möchte, dem sei die auf der Google-App-Engine laufende Spock Web Console [5] empfohlen. Hier kann über die Weboberfläche Spock-Code eingegeben und direkt ausgeführt werden.

Ansonsten beginnt der Einstieg durch Inkludierung der Abhängigkeit zu Spock sowie Groovy über das jeweilige Build-Werkzeug im zu testenden Projekt. Beim Einsatz vo...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang