Ein Test ist ein kleines Programm, das ein anderes Programm ausführt und prüft, ob dabei herauskommt, was herauskommen soll. Bei einer Rechnung mit Rabatt und ermäßigtem Steuersatz müssen unten diese eine Zahl stehen. Ein Test hält das fest und meldet sich, sobald jemand es ändert.
Laravel bringt dafür alles mit. Eine Anwendung kann komplett hochgefahren, ein Aufruf abgeschickt und die Antwort geprüft werden, mit einer eigenen Datenbank, die danach wieder leer ist.
Wo Tests sich zuerst lohnen
Nicht überall gleich. Am meisten bringen sie dort, wo Fachlogik sitzt, die stimmen muss: Preise, Fristen, Berechtigungen, Abrechnungen. Diese Stellen ändern sich selten und tun im Fehlerfall richtig weh.
Am wenigsten bringen sie an Oberflächen, die noch in Bewegung sind. Ein Test, der bei jeder gestalterischen Änderung bricht, wird nach zwei Wochen abgeschaltet, und dann steht er nutzlos herum.
Den größten Wert entfalten Tests zusammen mit CI/CD, weil sie dann bei jeder Änderung von selbst laufen und niemand daran denken muss.