Heim  >  Artikel  >  Backend-Entwicklung  >  Wie führt man PHP-Unit-Tests durch?

Wie führt man PHP-Unit-Tests durch?

王林
王林Original
2023-05-12 08:28:352041Durchsuche

In der Webentwicklung ist PHP eine beliebte Sprache, daher ist das Unit-Testen von PHP eine unverzichtbare Fähigkeit für jeden. In diesem Artikel wird vorgestellt, was PHP-Unit-Tests sind und wie man PHP-Unit-Tests durchführt.

1. Was ist PHP-Unit-Test?

PHP-Unit-Tests beziehen sich auf das Testen der kleinsten Komponente einer PHP-Anwendung, auch Code-Einheit genannt. Diese Codeeinheiten können Methoden, Klassen oder eine Reihe von Klassen sein. PHP-Unit-Tests sollen bestätigen, dass jede Codeeinheit wie erwartet funktioniert und korrekt mit anderen Einheiten zusammenarbeitet.

In PHP gibt es zwei Haupttypen von Unit-Tests: statische Tests und dynamische Tests.

Statisches Testen bezieht sich auf das Testen des Codes mit PHP-Code-Analysetools, ohne dass Testfälle im Code ausgeführt werden. Statische Tests können mögliche Fehler wie undefinierte Funktions- oder Methodenaufrufe erkennen. Die beliebtesten statischen PHP-Testtools sind PHPStan und PHPMD.

Dynamisches Testen bezieht sich auf die Definition von Testfällen im Code und die Ausführung dieser Testfälle in der Testumgebung. Dynamische Tests können dabei helfen, Fehler in Ihrem Code zu erkennen, z. B. nicht behandelte Ausnahmen oder Logikfehler. Zu den beliebten dynamischen PHP-Testtools gehören PHPUnit und SimpleTest.

2. Wie führt man PHP-Unit-Tests durch?

  1. PHPUnit installieren

PHPUnit ist eines der beliebtesten Test-Frameworks in PHP. Zuerst müssen wir PHPUnit installieren. Sie können PHPUnit mit dem PHP-Paketmanager Composer installieren. Führen Sie den folgenden Befehl aus, um PHPUnit zu installieren:

composer require phpunit/phpunit --dev
  1. Testdatei erstellen

Erstellen Sie eine Datei mit dem Namen „CalculatorTest.php“ und schreiben Sie die Testfälle in diese Datei. Zum Beispiel können wir die „add“-Methode einer Klasse namens „Calculator“ testen:

<?php
use PHPUnitFrameworkTestCase;

class CalculatorTest extends TestCase {
  public function testAdd() {
    include 'Calculator.php';       //包含要测试的类

    $calculator = new Calculator();

    $result = $calculator->add(2, 3);

    $this->assertEquals(5, $result);
  }
}
?>

In diesem Beispiel verwenden wir die „TestCase“-Klasse in PHPUnit, die viele nützliche Assertionsmethoden bereitstellt, wie z. B. die „assuranceEquals“-Methode. Wird verwendet, um festzustellen, ob zwei Werte gleich sind.

  1. Führen Sie die Tests aus

Wechseln Sie nach dem Speichern der Testdatei in das Projektverzeichnis im Terminal und führen Sie den folgenden Befehl aus, um die Tests auszuführen:

./vendor/bin/phpunit CalculatorTest.php

Dadurch werden alle Testfälle in „CalculatorTest.php“ ausgeführt. Datei und zeigen Sie die Testergebnisse an. Wenn alle Testfälle erfolgreich sind, wird eine Erfolgsmeldung angezeigt.

  1. Mehr Testfälle schreiben

Normalerweise müssen wir mehrere Testfälle schreiben, um alle möglichen Situationen abzudecken. Beispielsweise können wir einen Testfall schreiben, um die Methode „subtrahieren“ zu testen:

public function testSubtract() {
  include 'Calculator.php';

  $calculator = new Calculator();

  $result = $calculator->subtract(5, 3);

  $this->assertEquals(2, $result);
}

In diesem Beispiel testen wir die Methode „subtrahieren“ und stellen mithilfe der Methode „assertEquals“ fest, ob das Ergebnis gleich „2“ ist.

  1. Verwendung von Datenanbietern

In PHP können Sie Datenanbieter verwenden, um mehrere Testfälle zu durchlaufen. Ein Datenprovider ist eine Methode, die mehrere Datensätze zurückgibt. Mithilfe der Annotation „dataProvider“ können wir einen Datenanbieter einem Testfall zuordnen.

Zum Beispiel können wir einen Datenanbieter erstellen, um die Methode „multiply“ zu testen:

public function multiplicationProvider() {
    return [
      [0, 0, 0],
      [1, 0, 0],
      [0, 1, 0],
      [2, 2, 4],
      [1, -1, -1],
      [-1, -1, 1],
    ];
}

/**
 * @dataProvider multiplicationProvider
 */
public function testMultiply($a, $b, $result) {
    include 'Calculator.php';

    $calculator = new Calculator();

    $this->assertEquals($calculator->multiply($a, $b), $result);
}

In diesem Beispiel erstellen wir einen Datenanbieter namens „multiplicationProvider“, der mehrere Datensätze zurückgibt. Anschließend verknüpfen wir den Datenanbieter mit dem Testfall mithilfe der Annotation „dataProvider“ in der Methode „testMultiply“. Auf diese Weise durchläuft PHPUnit während des Testlaufs automatisch alle Datensätze im Datenanbieter und führt den Testfall einmal für jeden Datensatz aus.

3. Zusammenfassung

PHP-Unit-Tests sind eine Fähigkeit, mit der jeder PHP-Entwickler vertraut sein muss. In diesem Artikel haben wir vorgestellt, was PHP-Unit-Tests sind und wie man PHPUnit für Unit-Tests verwendet. Wir haben auch gelernt, wie man Datenanbieter nutzt, um weitere Testfälle zu schreiben. Mithilfe dieser Techniken können wir robusten PHP-Code schreiben und sicherstellen, dass der Code wie erwartet funktioniert.

Das obige ist der detaillierte Inhalt vonWie führt man PHP-Unit-Tests durch?. 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