Heim > Backend-Entwicklung > PHP-Tutorial > PHPUNIT erneut steigern: Erste Schritte mit TDD in PHP

PHPUNIT erneut steigern: Erste Schritte mit TDD in PHP

Jennifer Aniston
Freigeben: 2025-02-09 13:02:15
Original
532 Leute haben es durchsucht

Dieser Artikel bietet eine moderne Einführung in Phpunit für eine zeitgenössische PHP -Entwicklungsumgebung. Wir erstellen ein einfaches Befehlszeilen-Tool, das JSON in PHP-Arrays umwandelt und auf dem Weg wichtige Phpunit-Konzepte demonstriert.

Re-Introducing PHPUnit: Getting Started with TDD in PHP

Wir nehmen mit objektorientiertem PHP (Php 7 oder höher) vertraut. Verwenden Sie für ein optimiertes Setup Homestead, das Php 7 vorinstalliert und den Prozess vereinfacht. Einige Befehlszeilennutzungen sind beteiligt, aber wir werden Sie durch sie führen.

Schlüsselkonzepte:

  • Phpunit: Ein Testframework für PHP, der die Erstellung und Ausführung der Tests vereinfacht, die Codequalität und die testgetriebene Entwicklung (TDD) fördern.
  • Test-gesteuerte Entwicklung (TDD): Eine Methodik, bei der Tests vor vor geschrieben werden, die Entwicklung und Gewährleistung des erwarteten Verhaltens. Behauptungen überprüfen die erwarteten Ergebnisse.
  • Setup: Beinhaltet das Erstellen eines Projekts mit Composer, die Installation von Phpunit als Entwicklungsabhängigkeit (composer require phpunit/phpunit --dev) und konfigurieren phpunit.xml, um Testsuiten und Bootstrapping zu verwalten.
  • Erster Test: Erweitern Sie PHPUnitFrameworkTestCase, Verwenden Sie Behauptungen (assertEquals usw.), um die erwarteten Ergebnisse zu definieren, die Entwicklung der Funktionscode zu treiben.
  • Datenanbieter: organisieren Sie Tests sauber, indem Sie Testdaten von der Logik trennen. Fügen Sie einfach neue Testfälle hinzu, ohne Testmethoden zu ändern.
  • Codeabdeckung: Berichte identifizieren nicht getestetes Code, um umfassende Tests und Anwendungsrobustheit zu gewährleisten.

Testgetriebene Entwicklung erklärt:

tdd beinhaltet das Schreiben von Tests, um zu definieren, wie Code sich vor den Code selbst verhalten sollte. Behauptungen (, assertEquals usw.) überprüfen, ob der Code den Erwartungen entspricht. Ein fehlgeschlagener Test zeigt einen Bedarf an Codeänderungen an. assertTrue

Phpunit -Übersicht:

Phpunit bietet Tools (Klassen und ausführbare Ausführungsfähigkeiten) zur Vereinfachung des Tests und Analyse des Tests. Es generiert Berichte mit Codequalität, Abdeckung und mehr.

Beispielanwendung: JSON to PHP Array Converter

Wir erstellen ein Befehlszeilen-Tool, um JSON-Dateien in PHP-Arrays zu konvertieren. Nehmen Sie eine Php 7 -Umgebung mit Komponist an. Wenn die Verwendung von Homestead verbessert wird,

in die VM (ssh). vagrant ssh

  1. Projekt -Setup:

    cd Code
    git clone https://github.com/php-pds/skeleton converter
    cd converter
    composer require phpunit/phpunit --dev
    rm bin/* src/* docs/* tests/*
    Nach dem Login kopieren
    Nach dem Login kopieren
  2. Front -Controller (index.php in konverter/public):

    <?php echo "Hello world";
    Nach dem Login kopieren
    Nach dem Login kopieren
  3. phpunit.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <phpunit bootstrap="tests/autoload.php">
        <testsuites>
            <testsuite name="converter">
                <directory suffix="Test.php">tests</directory>
            </testsuite>
        </testsuites>
    </phpunit>
    Nach dem Login kopieren
    Nach dem Login kopieren
  4. tests/autoload.php:

    cd Code
    git clone https://github.com/php-pds/skeleton converter
    cd converter
    composer require phpunit/phpunit --dev
    rm bin/* src/* docs/* tests/*
    Nach dem Login kopieren
    Nach dem Login kopieren
  5. composer.json (aktualisiert): (Ersetzen Sie die Vorlagenwerte durch Ihre Projektdetails)

    <?php echo "Hello world";
    Nach dem Login kopieren
    Nach dem Login kopieren
  6. run composer dump-autoload

  7. Erster Test (Tests/SitePoint/Converter/Convertertest.php):

    <?xml version="1.0" encoding="UTF-8"?>
    <phpunit bootstrap="tests/autoload.php">
        <testsuites>
            <testsuite name="converter">
                <directory suffix="Test.php">tests</directory>
            </testsuite>
        </testsuites>
    </phpunit>
    Nach dem Login kopieren
    Nach dem Login kopieren
  8. Führen Sie Tests aus (php vendor/bin/phpunit) (Erwarten Sie anfangs einen Fehler)

  9. Implementieren Sie die Konverterklasse (SRC/SITEPOINT/CONVERTER/CONVERTER.PHP):

    <?php
    require_once __DIR__ . '/../vendor/autoload.php';
    Nach dem Login kopieren
  10. tests neu abgerufen.

    (sollte jetzt passieren)

Der Rest der Tutorial -Details fügen Sie weitere Tests hinzu, verwenden Datenanbieter für saubereres Code und das Einrichten von Codeabdeckungsberichten mit XDebug. Die letzten Abschnitte umfassen FAQs, die TDD und PHPUnit Best Practices abdecken. Der vollständige Code ist auf GitHub verfügbar (Link im Originaltext angegeben).

Das obige ist der detaillierte Inhalt vonPHPUNIT erneut steigern: Erste Schritte mit TDD in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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