Was sind Tests
Tests prüfen automatisiert, ob Ihr Code so funktioniert wie erwartet. Wenn Sie neue Features hinzufügen oder Bugs beheben, sehen Sie mit Tests schnell, ob bestehendes Verhalten beschädigt wurde. Im Team lassen sich Änderungen dank Tests entspannter durchführen und reviewen. Laravel bringt Test-Unterstützung von Anfang an mit – wahlweise Pest oder PHPUnit. Nach einer Neuinstallation existierenphpunit.xml und das Verzeichnis tests/ bereits.
Aufbau des Verzeichnisses tests/
Feature/– Feature-Tests. Größere Tests mit HTTP-Anfragen, die mehrere Komponenten oder API-Endpunkte prüfen. Die meisten Ihrer Tests landen hier.Unit/– Unit-Tests. Testen einzelne Klassen oder Methoden. Die Laravel-App wird nicht gebootet – Datenbank und andere Framework-Funktionen stehen nicht zur Verfügung.
Test erzeugen
Neue Testklassen erzeugen Sie mitmake:test.
tests/Feature/TodoTest.php.
Tests ausführen
Mitphp artisan test.
vendor/bin/pest oder vendor/bin/phpunit funktionieren genauso; php artisan test liefert die schönere Ausgabe.
Optionen zum Filtern:
Einfache Tests schreiben
Beispiele für einfache Assertions:Häufige Assertions
HTTP-Tests
Laravels HTTP-Tests simulieren Requests, ohne dass ein echter HTTP-Server läuft. Sie kommen inFeature/-Tests zum Einsatz.
Seite anzeigen
get() sendet einen GET-Request und Sie prüfen die Antwort.
Beispiel: HTTP-Tests einer ToDo-App
Angenommen, Sie haben einTodo-Modell. So testen Sie CRUD:
Häufige Response-Assertions
Der Trait
RefreshDatabase setzt die Datenbank nach jedem Test zurück, damit sich Tests nicht gegenseitig beeinflussen.Testumgebung
phpunit.xml
Die Testumgebung konfigurieren Sie in phpunit.xml im Projekt-Root.
Standardmäßig sind Session und Cache auf array gesetzt, sodass keine Daten überleben.
Datei .env.testing
Wenn Sie im Root eine .env.testing anlegen, wird sie bei Testläufen anstelle von .env geladen.
Praktisch für spezielle Testdatenbanken oder externe Dienste.
Parallele Testausführung
Mit--parallel verkürzen Sie Laufzeiten, indem mehrere Prozesse gleichzeitig testen.
Zuerst brianium/paratest installieren:
--processes steuern:
Nächste Schritte
HTTP-Tests
Details zu Request-Simulation, authentifizierten Tests und JSON-Assertions.