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.phpPHPUnit 2.2.0 by Sebastian Bergmann. .. Time: 0.002204 OK (2 tests)cat BankAccount.txtBankAccount - 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".