Warum ist PHP-Testen nicht beängstigend, sondern nützlich?
\n\nStellen Sie sich vor: Sie haben ein PHP-Skript geschrieben, es funktioniert. Sie freuen sich. Eine Woche später müssen Sie eine neue Funktion hinzufügen. Sie ändern ein paar Zeilen – und plötzlich geht alles kaputt. Kommt Ihnen das bekannt vor? Wenn ja, dann müssen Sie dringend PHP-Testen kennenlernen. Das ist keine Magie, sondern einfach eine Reihe von Werkzeugen, die Ihr Projekt vor dem Chaos bewahren.
\n\nViele Anfänger-Entwickler haben Angst vor Tests. Es scheint kompliziert, langweilig und zeitaufwändig. In Wirklichkeit ist PHP-Unit-Testing wie eine Versicherung: Sie zahlen jetzt ein wenig, um später nicht alles zu verlieren. In diesem Artikel schauen wir uns an, wo ein Anfänger mit dem PHP-Testen beginnen kann, welche Werkzeuge verwendet werden und wie man den ersten Test schreibt, ohne verrückt zu werden.
\n\nWas ist Testen und warum wird es benötigt?
\n\nCode-Testen ist der Prozess der Überprüfung, ob Ihr Programm genau das tut, was Sie erwarten. Anstatt jedes Mal manuell den Browser zu öffnen und auf Links zu klicken, schreiben Sie spezielle Skripte (Tests), die das für Sie erledigen.
\n\nDie wichtigsten Vorteile:
\n- \n
- Sicherheit im Code. Sie wissen genau, dass nach Änderungen nichts kaputt geht. \n
- Zeitersparnis. Automatische Überprüfung funktioniert schneller als manuelle. \n
- Dokumentation. Tests zeigen, wie Ihr Code funktionieren soll. \n
- Vereinfachung von Refactoring. Sie können Code bedenkenlos umschreiben, wenn die Tests bestehen. \n
Das beliebteste Werkzeug für PHP-Testen ist PHPUnit. Es ist der De-facto-Standard in der PHP-Welt. Damit werden wir arbeiten.
\n\nInstallation von PHPUnit: Zwei einfache Wege
\n\nBevor Sie Tests schreiben, müssen Sie PHPUnit installieren. Es gibt zwei Hauptwege.
\n\nWeg 1: Composer (empfohlen)
\n\nWenn Sie bereits Composer verwenden (und das sollten Sie, es ist der Abhängigkeitsmanager für PHP), dann ist es ganz einfach. Öffnen Sie ein Terminal im Stammverzeichnis Ihres Projekts und führen Sie aus:
\n\ncomposer require --dev phpunit/phpunit ^10\n\nDas Flag --dev bedeutet, dass PHPUnit nur für die Entwicklung installiert wird und nicht auf den Produktionsserver gelangt.
Weg 2: PHAR-Archiv
\n\nWenn Composer nicht Ihre Wahl ist, können Sie PHPUnit als einzelne Datei herunterladen:
\n\nwget https://phar.phpunit.de/phpunit.phar\nchmod +x phpunit.phar\nsudo mv phpunit.phar /usr/local/bin/phpunit\n\nDanach sollte der Befehl phpunit --version die Version anzeigen.
Erster Test: Schreiben und Ausführen
\n\nJetzt kommt der spannende Teil. Wir erstellen eine einfache Klasse und schreiben einen Test dafür. Nehmen wir an, wir haben eine Funktion, die zwei Zahlen addiert.
\n\nSchritt 1. Zu testender Code
\n\nErstellen Sie die Datei src/Calculator.php:
<?php\n\nnamespace App;\n\nclass Calculator\n{\n public function add(float $a, float $b): float\n {\n return $a + $b;\n }\n}\n\nSchritt 2. Test für diese Klasse
\n\nPHPUnit folgt der Konvention: Tests werden im Verzeichnis tests/ gespeichert, und der Name der Testdatei stimmt mit dem Klassennamen mit dem Suffix Test überein. Erstellen Sie tests/CalculatorTest.php:
<?php\n\nnamespace Tests;\n\nuse App\\Calculator;\nuse PHPUnit\\Framework\\TestCase;\n\nclass CalculatorTest extends TestCase\n{\n public function testAdd()\n {\n $calculator = new Calculator();\n $result = $calculator->add(2, 3);\n $this->assertEquals(5, $result);\n }\n}\n\nWas passiert hier?
\n- \n
- Wir erben von
TestCase– der Basisklasse von PHPUnit. \n - Die Methode
testAddist unser Test. PHPUnit führt automatisch alle Methoden aus, die mittestbeginnen. \n $this->assertEquals()ist ein Assert (Behauptung). Es überprüft