TestDox

Mit Hilfe von Zusicherungen haben wir den Vertrag der Klasse BankAccount (Beispiel 4.2) in die Testfälle der Klasse BankAccountTest (Beispiel 4.1) geschrieben. Hierbei haben wir sprechende Namen wie testBalanceIsInitiallyZero gewählt, um einen Bezug zwischen Vertragspunkt und Testfallmethode herzustellen. Für die Erstellung von Testreports können diese Informationen mit der TestDox-Funktionalität von PHPUnit extrahiert werden. Diese ist angelehnt an die gleichnamige Erweiterung für agile Dokumentation mit JUnit.

Das PHPUnit-Kommandozeilenwerkzeug erzeugt auf Wunsch (Parameter --testdox-html und --testdox-text) einen Testreport in TestDox-Notation. Als Ausgabeformat kann HTML oder Text gewählt werden. Abbildung 4.5 zeigt die Textausgabe für die BankAccountTest-Klasse (Beispiel 4.1).

Abbildung 4.5. TestDox-Ausgabe für die Klasse BankAccountTest

phpunit --testdox-text BankAccount.txt BankAccountTest.php
PHPUnit 2.2.0 by Sebastian Bergmann.

..

Time: 0.002204

OK (2 tests)

cat BankAccount.txt
BankAccount
 - Balance is initially zero
 - Balance cannot become negative


Damit TestDox seine Arbeit korrekt verrichten kann, müssen die Namen der Testmethoden in der Studly-Caps-Notation vorliegen. TestDox erkennt den Beginn eines neuen Worts anhand der Großbuchstaben: aus "testBalanceIsInitiallyZero" wird so "Balance is initially zero".