Heim > Backend-Entwicklung > PHP-Tutorial > Erstellen Sie fehlerfreie Anwendungen mit Laravel Unit Testing

Erstellen Sie fehlerfreie Anwendungen mit Laravel Unit Testing

Linda Hamilton
Freigeben: 2025-01-03 05:43:40
Original
433 Leute haben es durchsucht

Build Bug-Free Applications using Laravel Unit Testing

Hallo Artisan,

Testen ist ein Teil der Softwareentwicklung. Es stellt sicher, dass Ihre Anwendung wie erwartet funktioniert. Laravel bietet eine gute Testunterstützung und wurde speziell für Tests entwickelt. Es stellt Pest und PHPUnit zum Testen bereit.

Sobald Sie eine Laravel-Anwendung installiert haben, können Sie sehen, dass phpunit.xml bereits in Ihrer Anwendung verfügbar ist. Standardmäßig enthält die Anwendung zwei separate Verzeichnisse im Testverzeichnis, eines für Feature und ein anderes für Unit. Die Einheit ist ein kleinerer und isolierter Teil Ihrer Anwendung, während die Funktion zum Testen eines größeren Teils Ihrer Anwendungen verwendet wird.

In diesem Blog-Beitrag erfahren Sie, wie Sie Tests mit PHPUnit schreiben und wie Sie sie in Ihre Laravel-Anwendung integrieren.

Warum Unit-Tests wichtig sind?

Bevor wir auf die Details eingehen, wollen wir uns schnell ein Bild davon machen, warum Unit-Tests wichtig sind:

  • Codequalität: Tests erkennen Fehler früh im Spiel und riskieren so nicht, dass sie in die Produktion gelangen.

  • Refactoring-Vertrauen: Tests ermöglichen Ihnen ein Refactoring mit Zuversicht, da Sie keine Angst davor haben, die Funktionalität zu beeinträchtigen.
    Dokumentation: Tests dienen als lebendige Dokumentation für das Verhalten Ihres Codes.

  • Zusammenarbeit: Sie dienen als Sicherheitsnetz für Teams: Sie lassen nicht zu, dass neue Änderungen die bestehende Funktionalität stören.

Bevor wir mit dem Schreiben der Testfälle beginnen, stellen Sie sicher, dass Sie die Laravel-Anwendung installiert haben.

Entwicklungsumgebung ist eingerichtet: Erstellen Sie eine .env.testing-Datei im Stammverzeichnis Ihres Projekts. Diese Datei wird anstelle der .env-Datei verwendet, wenn Sie PHPUnit-Tests ausführen oder Artisan-Befehle mit der Option --env=testing ausführen.

PHPUnit-Konfiguration überprüfen: Überprüfen Sie die Datei phpunit.xml in Ihrem Projektstammverzeichnis. Diese Datei konfiguriert _PHPUnit_ für Ihre Laravel-Anwendung.

Standardtests ausführen: Laravel enthält einige Beispieltests. Sie können sie ausführen mit:

php artisan test
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Dieser Befehl führt alle Tests im Testverzeichnis aus.

Also fangen wir an, Ihren ersten Unit-Test zu schreiben

Funktion: Zum Testen größerer Teile Ihrer Anwendung, häufig mit HTTP-Anfragen.

Einheit:Zum Testen einzelner Klassen und Methoden.

Lassen Sie uns einen einfachen Unit-Test schreiben:

1. Erstellen Sie eine Testdatei

Verwenden Sie Artisan, um eine Testdatei zu erstellen:

php artisan make:test SumOfTwoNumberTest --unit
Nach dem Login kopieren
Nach dem Login kopieren

Dadurch wird „tests/Unit/SumOfTwoNumberTest.php“ erstellt.

2. Schreiben Sie einen Testfall

Öffnen Sie die neu erstellte Testdatei und fügen Sie Ihre Testlogik hinzu:

<?php

namespace Tests\Unit;

use PHPUnit\Framework\TestCase;

class SumOfTwoNumberTest extends TestCase
{
    /**
     * A basic unit test example.
     *
     * @return void
     */
    public function test_addition()
    {
        $sum = 2 + 2;
        $this->assertEquals(4, $sum);
    }
}
Nach dem Login kopieren
Nach dem Login kopieren

3. Führen Sie den Test durch

Führen Sie Ihren Test aus mit:

php artisan test
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Sie können Ihre Tests auch mit dem test Artisan-Befehl ausführen. Dieser Befehl stellt ausführliche Testberichte bereit, um den Entwicklungs- und Debugging-Prozess zu vereinfachen.

php artisan make:test SumOfTwoNumberTest --unit
Nach dem Login kopieren
Nach dem Login kopieren

Sie sollten eine Ausgabe sehen, die angibt, ob der Test bestanden wurde oder nicht.

  • Testen eines Laravel-Modells

Lassen Sie uns einen Komponententest für eine Laravel-Modellmethode erstellen. Angenommen, wir haben ein Benutzermodell mit einer Methode getFullName:

1. Modellmethode

Fügen Sie die Methode zu Ihrem Benutzermodell hinzu:

<?php

namespace Tests\Unit;

use PHPUnit\Framework\TestCase;

class SumOfTwoNumberTest extends TestCase
{
    /**
     * A basic unit test example.
     *
     * @return void
     */
    public function test_addition()
    {
        $sum = 2 + 2;
        $this->assertEquals(4, $sum);
    }
}
Nach dem Login kopieren
Nach dem Login kopieren

2. Erstellen Sie den Test

Erstellen Sie eine Testdatei:

./vendor/bin/phpunit
Nach dem Login kopieren

Bearbeiten Sie die Testdatei, um die getFullName-Methode zu testen:

php artisan test
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

3. Führen Sie den Test aus

Führen Sie den Test durch:

public function getFullName(): string
{
    return $this->first_name .' '. $this->last_name;
}
Nach dem Login kopieren

Sie sollten eine Erfolgsmeldung sehen, wenn die Methode wie erwartet funktioniert.

  • Einen Funktionstest schreiben

Mit Funktionstests in Laravel können Sie größere Teile Ihrer Anwendung testen, z. B. Routen, Controller und Middleware.

Lassen Sie uns einen Beispiel-Funktionstest für eine Anmeldeseite schreiben.

1. Generieren Sie einen Funktionstest

Verwenden Sie Artisan, um einen neuen Funktionstest zu erstellen:

php artisan make:test UserTest --unit
Nach dem Login kopieren

Dadurch wird „tests/Feature/LoginTest.php“ erstellt.

2. Schreiben Sie die Testlogik

Öffnen Sie die Datei LoginTest.php und fügen Sie den folgenden Code hinzu:

<?php

namespace Tests\Unit;

use App\Models\User;
use PHPUnit\Framework\TestCase;

class UserTest extends TestCase
{
    public function test_get_full_name()
    {
        $user = new User();
        $user->first_name = 'John';
        $user->last_name = 'Doe';

        $this->assertEquals('John Doe', $user->getFullName());
    }
}
Nach dem Login kopieren

3. Führen Sie den Funktionstest durch

php artisan test
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Die Ausgabe zeigt, ob die Anmeldeseite zugänglich ist und ob sich der Benutzer erfolgreich anmelden kann.

Einige Best Practices zum Schreiben von Unit-Tests in Laravel

  • Beschreibende Testnamen: Die Namen der Tests sollten sehr beschreibend sein, was getestet wird.

  • Testen Sie immer nur eine Sache: Jeder Test sollte nur eine Funktionalität oder ein Verhalten testen.

  • Verwenden Sie Fabriken und Sämaschinen: Nutzen Sie die Modellfabriken und Sämaschinen von Laravel, um Testdaten zu erstellen.

  • Tests isolieren: Unit-Tests sollten nicht von externen Diensten wie einer Datenbank oder einer API abhängen. Verwenden Sie bei Bedarf Mocks und Stubs.

Weitere Informationen finden Sie in der Laravel-Dokumentation.

Fazit:
Unit- und Feature-Tests in Laravel sind leistungsstarke Möglichkeiten, die Codequalität aufrechtzuerhalten und ein robustes Anwendungsverhalten sicherzustellen. Mit PHPUnit ist das Schreiben und Ausführen von Tests eine einfache und effiziente Möglichkeit. Durch die Integration von Tests in Ihren Entwicklungsprozess erstellen Sie zuverlässigere und wartbarere Anwendungen.

Viel Spaß beim Lesen!!
Viel Spaß beim Programmieren!!
❤️ ?

Das obige ist der detaillierte Inhalt vonErstellen Sie fehlerfreie Anwendungen mit Laravel Unit Testing. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage