Heim > Artikel > Backend-Entwicklung > Unit-Tests und Code-Coverage mit PHP und PHPUnit
Mit der Entwicklung der Softwareentwicklung werden sich immer mehr Entwickler der Bedeutung von Unit-Tests bewusst. Unit-Tests sind eine gängige Testmethode in der Softwareentwicklung, die die Korrektheit und Stabilität des Codes sicherstellt, indem sie die Korrektheit eines einzelnen Funktionsmoduls (auch „Einheit“ genannt) testet. In diesem Artikel erfahren Sie, wie Sie mit PHP und PHPUnit Unit-Tests und Code-Abdeckung erreichen.
PHPUnit ist ein Open-Source-Testframework zum Testen von PHP-Code. Es unterstützt mehrere Testtypen, darunter Unit-Tests, Funktionstests und Integrationstests. In diesem Artikel konzentrieren wir uns auf Unit-Tests.
Warum Unit-Tests und Code-Coverage?
Bei der Entwicklung von Software versuchen wir normalerweise, unseren Code so oft wie möglich zu testen. Unit-Tests sind eine effizientere Testmethode, mit der während des Entwicklungsprozesses kontinuierlich getestet werden kann, um die Richtigkeit des Codes sicherzustellen. Darüber hinaus bietet es die folgenden Vorteile:
Die Codeabdeckung ist eine Möglichkeit, die Testabdeckung zu bewerten. Hier erfahren Sie, wie gut Ihr Code getestet wurde. Wenn Ihre Testabdeckung beispielsweise 60 % beträgt, bedeutet dies, dass Ihr Testcode 60 % des Quellcodes abdeckt. Mit der Codeabdeckung können Sie messen, ob die Qualität Ihrer Software hoch ist und ob Sie mehr Testfälle benötigen.
Starten Sie Unit-Tests mit PHPUnit
Bevor Sie fortfahren, müssen Sie sicherstellen, dass PHPUnit installiert ist. Kann über Composer installiert werden. Erstellen Sie eine Composer.json-Datei in Ihrem Projektverzeichnis und fügen Sie die PHPUnit-Abhängigkeit hinzu:
{ "require-dev": { "phpunit/phpunit": "^7.0" } }
Sie können PHPUnit installieren, indem Sie den folgenden Befehl ausführen:
composer install --dev
Als Nächstes zeigen wir, wie Sie einen einfachen Komponententest schreiben. Stellen Sie sich vor, Sie schreiben eine PHP-Klasse namens „Calculator“, die grundlegende arithmetische Operationen ausführt. Hier ist der Code:
class Calculator { public function add($a, $b) { return $a + $b; } public function subtract($a, $b) { return $a - $b; } }
Schreiben Sie nun eine Testklasse namens „CalculatorTest“, die unsere Calculator-Klasse testet:
use PHPUnitFrameworkTestCase; class CalculatorTest extends TestCase { public function testAdd() { $calculator = new Calculator(); $result = $calculator->add(1, 2); $this->assertEquals(3, $result); } public function testSubtract() { $calculator = new Calculator(); $result = $calculator->subtract(2, 1); $this->assertEquals(1, $result); } }
Im obigen Code haben wir eine der grundlegenden Testmethoden verwendet, die von PHPUnit bereitgestellt werden – attachmentEquals(). Es vergleicht den Testwert mit dem erwarteten Wert und löst eine Ausnahme aus, wenn sie nicht gleich sind.
Führen Sie nun die PHPUnit-Tests aus:
./vendor/bin/phpunit CalculatorTest.php
Wenn alle Tests erfolgreich sind, wird die folgende Ausgabe angezeigt:
PHPUnit 7.5.1 by Sebastian Bergmann and contributors. .. Time: 42 ms, Memory: 4.00 MB OK (2 tests, 2 assertions)
Beachten Sie, dass in diesem Beispiel ein kleiner Trick verwendet wird, der darin besteht, gleichzeitig die Calculator-Klasse zu definieren die gleiche Datei CalculatorTest.php und die entsprechende Testklasse CalculatorTest.
Verstehen Sie die grundlegenden Testmethoden von PHPUnit
PHPUnit bietet eine Vielzahl von Testmethoden. Im Folgenden finden Sie Anwendungsbeispiele für einige der grundlegenden Methoden:
Weitere Testmethoden für PHPUnit finden Sie in der Dokumentation.
Testen der Codeabdeckung mit PHPUnit
Wir haben gesehen, wie man PHPUnit für Unit-Tests verwendet. Lassen Sie uns nun verstehen, wie Sie PHPUnit zum Testen der Codeabdeckung verwenden.
Um eine Codeabdeckung zu erreichen, müssen wir beim Ausführen von PHPUnit die Option --coverage-html hinzufügen. Es wird ein Bericht zur HTML-Codeabdeckung erstellt. Führen Sie einfach den folgenden Befehl aus:
./vendor/bin/phpunit --coverage-html reports tests
Dieser Befehl führt alle Testfälle im Testverzeichnis unseres Projekts aus und generiert nach der Ausführung einen Codeabdeckungsbericht im Berichtsverzeichnis.
Danach können Sie den HTML-Bericht in Ihrem Browser öffnen, um die Quellcodeabdeckung anzuzeigen.
Zusammenfassung
In diesem Artikel haben wir vorgestellt, wie man PHPUnit für Unit-Tests und Code-Abdeckung verwendet. Mit Unit-Tests und Code-Abdeckung können Sie die Projektqualität und -stabilität verbessern und die Kosten für Skalierung und Refactoring senken.
Denken Sie beim Schreiben von PHP-Code daran, gute Unit-Tests zu schreiben. Ein guter Komponententest wird verwendet, um die Codekorrektheit zu überprüfen, Regressionsfehler zu verhindern und die Coderobustheit sicherzustellen. Durch das Schreiben guter Testfälle können Sie Probleme frühzeitig erkennen und beheben, bevor sie auftreten.
Das obige ist der detaillierte Inhalt vonUnit-Tests und Code-Coverage mit PHP und PHPUnit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!