Entwicklung & Design

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

Seite 4 / 5

Sebastian Bergmann schreibt in der PHPUnit-Dokumentation, dass auf die Funktion tearDown() auch verzichtet werden kann, solange keine externen Ressourcen involviert sind. In den meisten Fällen wird es aber so sein, dass beispielsweise Datenbanken in den Tests beteiligt sind.

Wir testen doch alles, oder?

Die Testfunktionen der vorhergehenden Beispiele überprüften bislang nur, ob die Funktionen das erwartete Ergebnis für einen Standardfall liefern. Bei komplexeren Funktionen gibt es dagegen noch weitere zu überprüfende Aspekte:

Aspekte Grund
Kontrolle der Funktionalität Sicherstellen, dass alle Anforderungen erfüllt werden.
Exceptions abfangen Funktionen liefern, z. B. bei illegalen Parametern, Exceptions zurück. Fehlen diese Exceptions, handelt es sich um einen Fehler.
Edge-Cases überprüfen Was passiert, wenn zum Beispiel eine viel größere Zahl übergeben wird als im
„Normalfall“? Verhält sich die Funktion genau so wie erwartet?
Regression Gefixte Bugs sollen durch Unit Tests abgedeckt werden. Sollte der Bug
erneut auftreten, wird durch den fehlgeschlagenen Test automatisch
darauf aufmerksam gemacht.

Wenn ein Team beginnt, in seinen Projekten Unit Tests einzusetzen, wird anfangs sicherlich die Überprüfung der Anforderungen im Mittelpunkt stehen. Ist genug Zeit vorhanden, können auch noch die Exceptions/Edge Cases geprüft werden. Diese Tests bringen aber häufig sehr viel Aufwand mit sich.

Neben all den Vorteilen, die sauberer Code und die Tests mit sich bringen, gibt es auch einige negative Punkte: Neben dem enormen Aufwand zu Beginn ist mit jeder Änderung am Programmcode meist auch Arbeit an den Tests nötig. Zudem kann die ganze Testerei leicht süchtig machen, was zu noch mehr Tests führt. Die größte Gefahr lauert jedoch in den Tests selbst: Man sollte immer daran denken, dass die Tests von Menschen entwickelt wurden und deshalb ebenfalls Fehler enthalten 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