Heim > Artikel > Backend-Entwicklung > So verwenden Sie PHPUnit für testgetriebene Entwicklung in der PHP-Entwicklung
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.
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
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.
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.
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.
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!