Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie PHPUnit zum Testen der Codeabdeckung in der PHP-Entwicklung

So verwenden Sie PHPUnit zum Testen der Codeabdeckung in der PHP-Entwicklung

PHPz
PHPzOriginal
2023-06-27 09:24:56515Durchsuche

Für PHP-Entwickler ist die Verwendung von PHPUnit zum Testen der Codeabdeckung eine sehr wichtige Aufgabe. Mithilfe von Codeabdeckungstests können Entwickler überprüfen, ob es ungetestete Teile des von ihnen geschriebenen Codes gibt und ob die Testabdeckung hoch genug ist. In diesem Artikel wird erläutert, wie Sie PHPUnit zum Testen der Codeabdeckung verwenden.

Zuerst müssen wir PHPUnit installieren. Mit Composer kann PHPUnit installiert werden:

composer require --dev phpunit/phpunit

Nachdem die Installation abgeschlossen ist, können wir im Terminal den folgenden Befehl ausführen, um zu überprüfen, ob PHPUnit erfolgreich installiert wurde:

php vendor/bin/phpunit --version

Als nächstes müssen wir PHPUnit konfigurieren, bevor wir den Test ausführen. Erstellen Sie eine phpunit.xml-Datei im Stammverzeichnis des Projekts mit folgendem Inhalt:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         colors="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="false"
         stopOnFailure="false">
    <testsuites>
        <testsuite name="Example Test Suite">
            <directory>tests</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">src</directory>
        </whitelist>
    </filter>
</phpunit>

Diese Konfigurationsdatei teilt PHPUnit mit, welche Dateien beim Ausführen von Tests einbezogen werden sollen, und konfiguriert außerdem einige Fehler während Testläufen.

Bevor wir den Testcode schreiben, schauen wir uns unten ein einfaches Beispiel an:

<?php

class Foo
{
    public function bar()
    {
        return true;
    }
}

Dies ist eine sehr einfache PHP-Klasse, die eine öffentliche Methode namens bar() enthält, die einen booleschen Wert zurückgibt. Jetzt müssen wir einen Test für diese Klasse schreiben, um sicherzustellen, dass sie sich wie erwartet verhält. Erstellen Sie im Testverzeichnis eine Testdatei mit dem Namen FooTest.php mit folgendem Inhalt:

<?php
    
use PHPUnitFrameworkTestCase;

class FooTest extends TestCase
{
    /** @test */
    public function it_should_return_true()
    {
        $foo = new Foo;
        $this->assertTrue($foo->bar());
    }
}

Dieser Test ist sehr einfach. Wir instanziieren die Klasse Foo und stellen sicher, dass ihre Methode bar() true zurückgibt. Jetzt können wir die Tests ausführen und den von PHPUnit generierten Abdeckungsbericht anzeigen. Führen Sie den folgenden Befehl im Terminal aus:

php vendor/bin/phpunit --coverage-html coverage

Dieser Befehl generiert einen HTML-Abdeckungsbericht und speichert ihn im Abdeckungsverzeichnis im Projektstammverzeichnis. Öffnen Sie den Bericht und Sie können sehen, dass die Codeabdeckung der Klasse Foo 100 % beträgt. Das bedeutet, dass der von uns geschriebene Test den gesamten Code der Klasse Foo abgedeckt hat.

Im Allgemeinen ist PHPUnit ein sehr leistungsfähiges Testtool, das uns beim Schreiben von hochwertigem PHP-Code helfen kann. Das Testen der Codeabdeckung ist eine Schlüsselfunktion von PHPUnit und stellt sicher, dass die von uns geschriebenen Tests jeden Teil unseres Codes abdecken. Die Verwendung von PHPUnit zum Testen der Codeabdeckung im Projekt kann die Qualität unseres Codes erheblich verbessern und einige potenzielle Fehler und Lücken vermeiden.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHPUnit zum Testen der Codeabdeckung in der PHP-Entwicklung. 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