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.
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:
composer require phpunit/phpunit --dev
) und konfigurieren phpunit.xml
, um Testsuiten und Bootstrapping zu verwalten. PHPUnitFrameworkTestCase
, Verwenden Sie Behauptungen (assertEquals
usw.), um die erwarteten Ergebnisse zu definieren, die Entwicklung der Funktionscode zu treiben. 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
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/*
Front -Controller (index.php in konverter/public):
<?php echo "Hello world";
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>
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/*
composer.json (aktualisiert): (Ersetzen Sie die Vorlagenwerte durch Ihre Projektdetails)
<?php echo "Hello world";
run composer dump-autoload
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>
Führen Sie Tests aus (php vendor/bin/phpunit
) (Erwarten Sie anfangs einen Fehler)
Implementieren Sie die Konverterklasse (SRC/SITEPOINT/CONVERTER/CONVERTER.PHP):
<?php require_once __DIR__ . '/../vendor/autoload.php';
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!