Heim >Backend-Entwicklung >PHP-Tutorial >Unit-Tests und Abdeckungsanalyse von PHP-Funktionen
Unit-Tests und Abdeckungsanalyse von PHP-Funktionen: Verwenden Sie PHPUnit für Unit-Tests und schreiben Sie .test.php-Dateien, um einzelne Funktionen zu isolieren und zu testen. Verwenden Sie den Befehl phpunit, um Komponententests auszuführen. Verwenden Sie phpunit --coverage-html, um die Abdeckung zu analysieren und einen Bericht zu erstellen, der getestete und ungetestete Codezeilen zeigt. PHPUnit installieren, Unit-Tests schreiben, Tests ausführen, Abdeckung analysieren, diesen Prozess mithilfe einer benutzerdefinierten Add-Funktion demonstrieren.
Einheitentests und Abdeckungsanalyse von PHP-Funktionen
Das Schreiben von Qualitätscode in PHP erfordert strenge Tests, um sicherzustellen, dass er ordnungsgemäß funktioniert und die erwarteten Ergebnisse erzielt. Unit-Tests bieten eine Möglichkeit, einzelne Funktionen oder Methoden zu isolieren und zu testen, während die Abdeckungsanalyse dabei hilft, festzustellen, welche Teile des Codes getestet wurden.
PHPUnit installieren
PHPUnit ist ein beliebtes PHP-Unit-Test-Framework. Um es zu installieren, verwenden Sie Composer:
composer require --dev phpunit/phpunit
Schreiben von Unit-Tests
Unit-Tests werden mit einer .test.php-Erweiterungsdatei geschrieben. Hier ist ein Beispiel für das Testen der Add-Funktion:
<?php use PHPUnit\Framework\TestCase; class AddFunctionTest extends TestCase { public function testAddNumbers() { $result = add(1, 2); $this->assertEquals(3, $result); } }
Komponententests ausführen
Komponententests mit dem phpunit-Befehl ausführen:
phpunit
Abdeckung analysieren
Phpunit bietet eine integrierte Option zum Generieren von Abdeckungsberichten:
phpunit --coverage-html
Dadurch wird ein Abdeckungsbericht im Verzeichnis html
generiert. Es wird angezeigt, welche Zeilen im Code getestet wurden und welche nicht. html
目录下生成一个覆盖率报告。它将显示代码中哪些行已被测试,哪些行尚未被测试。
实战案例
为了演示,我们创建一个自定义 add 函数,然后编写一个单元测试来测试它:
functions.php
<?php function add(int $num1, int $num2): int { return $num1 + $num2; }
AddFunctionTest.test.php
<?php use PHPUnit\Framework\TestCase; class AddFunctionTest extends TestCase { public function testAddNumbers() { $result = add(1, 2); $this->assertEquals(3, $result); } public function testAddNegativeNumbers() { $result = add(-1, -2); $this->assertEquals(-3, $result); }
运行单元测试:
phpunit
生成覆盖率报告:
phpunit --coverage-html
覆盖率报告将显示 add
add
vollständig abgedeckt ist, was bedeutet, dass unsere Komponententests alle Codepfade abdecken. 🎜Das obige ist der detaillierte Inhalt vonUnit-Tests und Abdeckungsanalyse von PHP-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!