Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie PHPUnit für testgetriebene Entwicklung in der PHP-Entwicklung

So verwenden Sie PHPUnit für testgetriebene Entwicklung in der PHP-Entwicklung

WBOY
WBOYOriginal
2023-06-25 14:21:10971Durchsuche

Verwenden Sie PHPUnit für testgetriebene Entwicklung in der PHP-Entwicklung

Mit der rasanten Entwicklung der Softwareindustrie spielt testgetriebene Entwicklung (TDD) eine immer wichtigere Rolle im Softwareentwicklungsprozess. PHPUnit ist eines der am häufigsten verwendeten Test-Frameworks in der PHP-Entwicklung. Es bietet eine Reihe nützlicher Tools und Methoden, die Entwicklern dabei helfen können, hochwertige Unit-Tests zu schreiben und diese in PHP-Anwendungen zu integrieren. In diesem Artikel wird die Verwendung von PHPUnit für TDD in der PHP-Entwicklung vorgestellt.

  1. PHPUnit installieren

Zuerst müssen Sie PHPUnit installieren. Es kann über Composer installiert werden, einen der beliebtesten Paketmanager für PHP. Zuerst müssen Sie die Datei „composer.json“ im Home-Verzeichnis erstellen und den folgenden Inhalt hinzufügen:

{
    "require-dev": {
        "phpunit/phpunit": "^9.5"
    }
}

Die Version von PHPUnit 9.5 ist hier angegeben und kann bei Bedarf geändert werden. Als nächstes verwenden Sie den folgenden Befehl, um PHPUnit zu installieren:

$ composer install

Nach Abschluss der Installation können Sie überprüfen, ob PHPUnit erfolgreich installiert wurde, indem Sie den folgenden Befehl verwenden:

$ ./vendor/bin/phpunit --version
  1. Testfälle schreiben

Nachdem PHPUnit installiert wurde, können Sie dies tun Beginnen Sie mit dem Schreiben von Testfällen. Ein Testfall ist eine Reihe von Testeinheiten, mit denen überprüft wird, ob verschiedene Teile des Quellcodes wie erwartet funktionieren. Jeder Testfall sollte mindestens eine Testmethode enthalten. Dabei handelt es sich um die Einheit im Testfall, die zur Überprüfung des Codes verwendet wird. Testmethoden werden normalerweise mit den von PHPUnit bereitgestellten Assertionsmethoden getestet.

Hier ist ein einfaches Beispiel:

<?php
use PHPUnitFrameworkTestCase;

class MyTest extends TestCase
{
    public function testAddition()
    {
        $this->assertEquals(2, 1+1);
    }
}

In diesem Beispiel heißt der Testfall MyTest und enthält eine Testmethode testAddition(). Die Testmethode verwendet die Assertionsmethode „asserEquals()“, um zu überprüfen, ob 1 + 1 gleich 2 ist. Weitere Einzelheiten zu den Assertionsmethoden von PHPUnit finden Sie in der offiziellen PHPUnit-Dokumentation.

  1. Testfälle ausführen

Nachdem die Testfälle geschrieben wurden, müssen sie ausgeführt werden, um zu überprüfen, ob der Code wie erwartet ausgeführt wird. Testfälle können mit dem folgenden Befehl ausgeführt werden:

$ ./vendor/bin/phpunit MyTest.php

Im obigen Befehl ist MyTest.php der Name der Testfalldatei. Wenn ein Testfall ausgeführt wird, lädt PHPUnit die Datei dynamisch und führt die Testmethode aus. Wenn der Test erfolgreich ist, wird eine grüne Meldung angezeigt. Wenn der Test fehlschlägt, wird eine rote Meldung angezeigt.

  1. Verwendung von Mocks und Stubs

Mocks und Stubs sind zwei weitere nützliche Funktionen von PHPUnit. Sie werden zum Verspotten von Objekten und Funktionen verwendet, um sicherzustellen, dass Code im richtigen Kontext ausgeführt wird.

Mocks sind eine spezielle Art von Objekten, mit denen das Verhalten anderer Objekte simuliert und getestet wird. In PHPUnit werden Mocks mit der Methode getMock() erstellt. Hier ist ein Beispiel für die Verwendung von Mocks:

<?php
use PHPUnitFrameworkTestCase;

class UserRepositoryTest extends TestCase
{
    public function testGetUserById()
    {
        $user = new stdClass();
        $user->id = 1;
        $user->name = 'John';

        $repository = $this->getMock('UserRepository');
        $repository->expects($this->once())
          ->method('getUserById')
          ->with($this->equalTo(1))
          ->will($this->returnValue($user));

        $result = $repository->getUserById(1);

        $this->assertSame($user, $result);
    }
}

Verwenden Sie im obigen Code die Methode getMock(), um Mocks von UserRepository zu erstellen. Verwenden Sie dann die Methode „expects()“, um die zu simulierende Methode anzugeben, und die Methode „with()“, um die Eingabeparameter anzugeben. Verwenden Sie abschließend die Methode will(), um das Ergebnis der Simulationsoperation anzugeben.

Stubs ist ein weiteres Tool, das Mocks ähnelt, um Funktionen zu verspotten. In PHPUnit können Sie den folgenden Code zum Stubbing verwenden:

<?php
use PHPUnitFrameworkTestCase;

class MyTest extends TestCase
{
    public function testMyFunction()
    {
        $stub = $this->getMockBuilder('SomeClass')
                     ->getMock();

        $stub->method('myFunction')
             ->willReturn('foo');

        $this->assertSame('foo', $stub->myFunction());
    }
}

In diesem Beispiel verwenden Sie zunächst die Methode getMockBuilder(), um Mocks von SomeClass zu erstellen. Verwenden Sie dann die Methode method (), um die zu simulierende Funktion anzugeben, und verwenden Sie die Methode willReturn (), um das Ergebnis des Simulationsvorgangs anzugeben.

  1. Fazit

PHPUnit bietet PHP-Entwicklern eine zuverlässige Möglichkeit, qualitativ hochwertige Unit-Tests zu schreiben, um sicherzustellen, dass der Code wie erwartet läuft. In diesem Artikel haben wir behandelt, wie Sie PHPUnit für die testgetriebene Entwicklung verwenden und wie Sie Objekte und Funktionen mithilfe von Mocks und Stubs verspotten. Wenn Sie PHPUnit für die testgetriebene Entwicklung verwenden, denken Sie immer daran, Testfälle zu schreiben, bevor Sie Code schreiben. In vielen Fällen können gut geschriebene Testfälle eine bessere Codequalität und bessere Ergebnisse liefern.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHPUnit für testgetriebene Entwicklung 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