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
Jennifer AnistonOriginal
2025-02-09 13:02:15601Durchsuche

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:

    <code class="language-bash">cd Code
    git clone https://github.com/php-pds/skeleton converter
    cd converter
    composer require phpunit/phpunit --dev
    rm bin/* src/* docs/* tests/*</code>
  2. Front -Controller (index.php in konverter/public):

    <code class="language-php"><?php echo "Hello world";</code>
  3. phpunit.xml:

    <code class="language-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></code>
  4. tests/autoload.php:

    <code class="language-bash">cd Code
    git clone https://github.com/php-pds/skeleton converter
    cd converter
    composer require phpunit/phpunit --dev
    rm bin/* src/* docs/* tests/*</code>
  5. composer.json (aktualisiert): (Ersetzen Sie die Vorlagenwerte durch Ihre Projektdetails)

    <code class="language-php"><?php echo "Hello world";</code>
  6. run composer dump-autoload

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

    <code class="language-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></code>
  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):

    <code class="language-php"><?php
    require_once __DIR__ . '/../vendor/autoload.php';</code>
  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!

Stellungnahme:
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
Vorheriger Artikel:Ihr erster PHP -CodeNächster Artikel:Ihr erster PHP -Code