Heim Backend-Entwicklung PHP-Tutorial So verwenden Sie PHPUnit für PHP-Unit-Tests

So verwenden Sie PHPUnit für PHP-Unit-Tests

May 12, 2023 am 08:13 AM
php 单元测试 phpunit

Mit der Entwicklung der Softwareentwicklungsbranche sind Tests nach und nach zu einem unverzichtbaren Bestandteil geworden. Als grundlegendster Teil des Softwaretests kann Unit-Test nicht nur die Codequalität verbessern, sondern auch die Entwicklung und Wartung von Code durch Entwickler beschleunigen. Im PHP-Bereich ist PHPUnit ein sehr beliebtes Unit-Testing-Framework, das verschiedene Funktionen bereitstellt, die uns beim Schreiben hochwertiger Testfälle helfen. In diesem Artikel erfahren Sie, wie Sie PHPUnit für PHP-Unit-Tests verwenden.

  1. PHPUnit installieren

Bevor wir PHPUnit verwenden, müssen wir es zuerst installieren. PHPUnit ist eine PHP-Bibliothek, die mit Composer installiert werden kann. Führen Sie im Stammverzeichnis Ihres Projekts den folgenden Befehl aus:

composer require --dev phpunit/phpunit
Nach dem Login kopieren

Dadurch wird PHPUnit als Entwicklungsabhängigkeit zu Ihrem Projekt hinzugefügt.

  1. Testfälle schreiben

Das Schreiben von Testfällen ist normalerweise der erste Schritt, wenn wir PHPUnit verwenden. Ein Testfall ist ein Skript, das eine oder mehrere Funktionen oder Methoden testet. Angenommen, wir haben eine Calculator-Klasse:

class Calculator {
    public function add($a, $b) {
        return $a + $b;
    }
}
Nach dem Login kopieren

Wir können einen Testfall verwenden, um die Add-Methode in der Calculator-Klasse zu testen:

use PHPUnitFrameworkTestCase;

class CalculatorTest extends TestCase {
    public function testAdd() {
        $calculator = new Calculator();
        $result = $calculator->add(2, 3);
        $this->assertEquals(5, $result);
    }
}
Nach dem Login kopieren

In diesem Testfall erstellen wir eine Testklasse namens CalculatorTest, die die PHPUnitFrameworkTestCase-Klasse erbt. Wir haben auch eine Testmethode namens testAdd geschrieben, in der wir eine Calculator-Instanz erstellt und die Add-Methode ausgeführt haben und schließlich mit $this->assertEquals getestet haben, ob das von der Add-Methode zurückgegebene Ergebnis mit dem erwarteten Wert übereinstimmt.

  1. Testfälle ausführen

Sobald wir die Testfälle geschrieben haben, können wir sie mit PHPUnit ausführen. Führen Sie im Stammverzeichnis unseres Projekts den folgenden Befehl aus:

vendor/bin/phpunit
Nach dem Login kopieren

Dadurch wird PHPUnit ausgeführt und alle verfügbaren Testfälle ausgeführt. Wenn Sie nur eine bestimmte Testklasse oder Testmethode ausführen möchten, können Sie den folgenden Befehl verwenden:

vendor/bin/phpunit tests/CalculatorTest.php
vendor/bin/phpunit --filter testAdd tests/CalculatorTest.php
Nach dem Login kopieren
  1. Behauptungen verwenden

PHPUnit bietet eine Vielzahl von Behauptungsfunktionen, mit denen Sie testen können, ob der Rückgabewert einer Funktion oder Methode entspricht unseren Erwartungen. Im Folgenden sind einige der am häufigsten verwendeten Assertionsfunktionen in PHPUnit aufgeführt:

  • assertTrue($value): Testen Sie, ob $value wahr ist
  • assertFalse($value): Testen Sie, ob $value falsch ist
  • assertEquals($expected, $actual) : Testen Sie, ob $actual gleich $expected ist
  • assertNotEquals($expected, $actual): Testen Sie, ob $actual nicht gleich $expected ist
  • assertSame($expected, $actual): Testen Sie, ob $actual gleich ist das Gleiche wie $expected
  • assertNotSame( $expected, $actual): Testen Sie, ob $actual sich von $expected unterscheidet
  • assertNull($value): Testen Sie, ob $value null ist
  • assertNotNull($value): Testen Sie, ob $ value ist nicht null
  • assertInstanceOf($expected , $actual): Testen Sie, ob $actual eine Instanz von $expected ist
  • assertNotInstanceOf($expected, $actual): Testen Sie, ob $actual keine Instanz von $expected
    ist
  1. Verwenden Sie einen Datenanbieter

Manchmal müssen wir testen, ob eine Funktion oder Methode für verschiedene Eingaben das richtige Ergebnis zurückgibt. Zu diesem Zeitpunkt können wir die Datenanbieterfunktion von PHPUnit verwenden. Ein Datenprovider ist eine Methode, die eine Reihe von Parametern bereitstellt, von denen jeder eine Sammlung von Daten darstellt, die getestet werden können.

Im folgenden Beispiel haben wir einen Datenprovider für die Add-Methode der Calculator-Klasse geschrieben, der unterschiedliche Eingabedaten und erwartete Ausgaben bereitstellt.

class CalculatorTest extends TestCase {
    /**
     * @dataProvider additionProvider
     */
    public function testAdd($a, $b, $expected) {
        $calculator = new Calculator();
        $result = $calculator->add($a, $b);
        $this->assertEquals($expected, $result);
    }

    public function additionProvider() {
        return [
            [0, 0, 0],
            [0, 1, 1],
            [1, 0, 1],
            [1, 1, 2],
            [2, 3, 5],
            [-1, 1, 0],
            [10, -5, 5]
        ];
    }
}
Nach dem Login kopieren

In diesem Testfall verwenden wir die Annotation @DataProvider, um PHPUnit mitzuteilen, wo ein Datenanbieter zu finden ist. Wir haben einen Datenanbieter namens „additionProvider“ geschrieben, in dem wir verschiedene Eingabedaten und erwartete Ausgaben bereitstellen. In der Testmethode testAdd haben wir diese Daten direkt übergeben und getestet.

  1. Verwendung von Scheinobjekten

Wenn wir eine Methode in einem Objekt testen, möchten wir uns möglicherweise nicht auf andere Klassen oder externe Ressourcen verlassen. Zu diesem Zeitpunkt können wir das Mock-Objekt von PHPUnit verwenden, um diese Abhängigkeiten zu simulieren. Ein Scheinobjekt ist ein Scheinobjekt, das dieselbe Schnittstelle bereitstellt, aber nicht tatsächlich instanziiert wird.

Im folgenden Beispiel haben wir ein Mock-Objekt für die Add-Methode in der Calculator-Klasse geschrieben, um externe Abhängigkeiten zu simulieren.

class CalculatorTest extends TestCase {
    public function testAdd() {
        $mock = $this->getMockBuilder('Dependency')
                     ->getMock();
        $mock->expects($this->once())
             ->method('getValue')
             ->will($this->returnValue(5));

        $calculator = new Calculator($mock);
        $result = $calculator->add(2, 3);
        $this->assertEquals(10, $result);
    }
}
Nach dem Login kopieren

In diesem Testfall verwenden wir die getMockBuilder-Methode, um ein Mock-Objekt namens Dependency zu erstellen. Dann erwarten wir, dass die getValue-Methode des Mock-Objekts einmal aufgerufen wird und 5 zurückgibt. Schließlich übergeben wir dieses Mock-Objekt an den Konstruktor der Calculator-Klasse.

Zusammenfassung

In diesem Artikel haben wir gelernt, wie man PHPUnit für PHP-Unit-Tests verwendet. Wir haben PHPUnit installiert, Testfälle geschrieben, die Testfälle ausgeführt und Assertionen, Datenanbieter und Mock-Objekte verwendet. Durch diese Schritte können wir hochwertige Testfälle schreiben, um unseren Code zu testen, um die Codequalität zu verbessern und Entwicklung und Wartung zu beschleunigen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHPUnit für PHP-Unit-Tests. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

CakePHP arbeitet mit Datenbank CakePHP arbeitet mit Datenbank Sep 10, 2024 pm 05:25 PM

Das Arbeiten mit der Datenbank in CakePHP ist sehr einfach. In diesem Kapitel werden wir die CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) verstehen.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

See all articles