Posted on Sep 11, 2007 in Blog, Development, PHP

Eine (auch von mir) fast übersehene, manchmal sinnvolle Funktion von PHPUnit ist das automatisierte Testen von Bildschirmausgaben.

Manchmal geben Methoden keine Werte zurück vielmehr wird per echo oder print etwas auf den Bildschirm geschrieben, was sich mit den standardmäßigen Assert-Methoden natürlich nicht Testen lässt.

PHPUnit sieht dafür aber eine Testmethode vor. Statt wie oftmals die Testklasse von PHPUnit_Framework_TestCase zu extenden greift man auf PHPUnit_Extensions_OutputTestCase als Parent-Klasse zurück.

Mit

$this->expectOutputString("Erwartete Ausgabe");

wird die erwartete Ausgabe gesetzt.

Mit dem darauffolgenden Aufruf der zu testenden Methode, die etwas via echo oder print ausgibt wird dann automatisch verglichen.

Stimmen beide Zeichenfolgen überein, stimmt also die Bildschirmausgabe mit dem zu prüfenden String überein, glückt der Unittest.
Der Abschnitt aus der Originaldokumentation findet sich hier.

Leave a Reply