Entwicklung & Design

Eine Einführung in Unit Testing mit PHP: Makelloser Code durch effizientes Testen

Seite 2 / 5

Im Regelfall sind das alle Tests hintereinander – manchmal ist es allerdings für die effiziente Fehlersuche besser, sich auf den Durchlauf eines einzelnen Test Cases zu beschränken, bis dieser nicht mehr fehlschlägt.

Ein einfaches Beispiel zum Anfangen

Zu testende Funktion
static function addition($a, $b) {
	return $a + $b;
}

Listing 1

Diese sehr übersichtliche Funktion wird über zwei Parameter gesteuert. Der Rückgabewert ist variabel, da er vom Wert der übergebenen Parameter abhängt. Ein simpler Test für diese Funktion könnte folgendermaßen aussehen:

Einfache Testmethode
public function testAddition() {
	$this->assertEquals(
		18,
		addition(12, 6)
	);
}

Listing 2

Der Test besteht in diesem Fall aus einer einzelnen Überprüfung. Solange die Funktion addition() mit diesen Werten das richtige Resultat zurück gibt, ist der Test bestanden. Sollte ein Entwickler die Funktion addition() verändern, so schlägt der Test beim nächsten Durchlauf Alarm, falls das Resultat von dem erwarteten Wert abweicht.

Auf der grünen Wiese

Im Normalfall werden allerdings nicht einzelne Funktionen, sondern ganze Klassen mit jeweils mehreren Funktionen getestet. Je nach Aufbau der zu testenden Klasse muss diese sauber initialisiert oder gegebenenfalls instantiiert werden, damit die Funktionen sinnvoll getestet werden können.

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Ein Kommentar
Webelutions
Webelutions

Sehr guter Artikel!
Ich habe auch einen Artikel über Unit Testing mit PHPUnit geschrieben, dort sind noch weiter Informationen zu diesem Thema vorhanden: http://webelutions.de/blog/unit-testing-mit-php/

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung