© istockphoto.com/AndSim
Teil 2: BDD-Tests auf dem Jenkins-Server ausführen

BDD-Tests mit Codeception


Codeception ist ein Testframework, mit dem Akzeptanztests, Functional-Tests, API-Tests und Unit-Tests komfortabel implementiert werden können. Hierfür greift Codeception unter anderem auf PHPUnit zurück.

Eine Wissensbasis in PHPUnit ist zwar nicht nötig, ist aber von Vorteil, sobald der Funktionsumfang von Codeception – zum Beispiel mittels Helper – erweitert werden soll. Akzeptanzkriterien sind Abnahmebedingungen von Stakeholdern an ein Feature bzw. eine umgesetzte Anforderung. Diese Kriterien sind unabhängig vom Framework, der Datenbank und der Programmiersprache – also unabhängig von allen technischen Feinheiten. Den Stakeholder interessiert nur, ob das Feature so umgesetzt wurde, wie es seiner Vorstellung und seinen Anforderungen entspricht. Hierfür wird er auf Links klicken, Formulare ausfüllen, durch die Seite navigieren und die Reaktion dieser begutachten. Dieses Verhalten kann er in BDD-Manier festhalten, um es entsprechend reproduzierbar zu gestalten oder vorab testbar zu machen. Ein weiterer Weg kann sein, das Verhalten der Stakeholder mittels entsprechender Tools aufzuzeichnen und es dann in BDD/Akzeptanztests zu überführen. Codeception bietet die Möglichkeit, diese Akzeptanztests BDD-freundlich abzubilden, wodurch die Tests und die Testergebnisse für die Stakeholder lesbar bleiben (Abb. 1). Ein exploratives Testen kann so gezielter eingesetzt werden, da die Standardanforderungen mittels BDD-Tests abgedeckt sind.

schroeder_bdd_1.tif_fmt1.jpgAbb. 1: Testergebnisse von Tests mit Codeception

Konfiguration von Codeception

Um BDD-Tests mittels Codeception ausführen zu können, passen wir die Verzeichnisstruktur dahingehend an und erweitern sie um ein Verzeichnis test/. In dieses Verzeichnis laden wir mittels des Befehls wget http://codeception.com/codecept.phar Codeception und bereiten es mit php codecept.phar bootstrap für die BDD-Tests vor. Nach dessen Ausführen existiert neben der .phar-Datei die in Listing 1 abgebildete Struktur. Der Bootstrap-Befehl legt die Suiten für die Standardtests von Codeception (Acceptance-, Functional- und Unit-Tests) an, Codeception lässt sich global über codeception.yml konfigurieren, pro Suite jeweils über die *.suite.yml. In der codeception.yml werden unter anderem Pfade zu den Tests, zu Environments und zum Supportbereich festgelegt. Die Environments und den Supportbereich werden wir im Weiteren genauer betrachten. Da Codeception mit PHPUnit arbeitet, bieten die Helper-Klassen eine gute Möglichkeit, eigene Tests zu schreiben, falls die von C...

Neugierig geworden?

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