Methoden und Beispiele für PHP-Unit-Tests phpunit

墨辰丷
Freigeben: 2023-03-26 08:58:01
Original
1566 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich den PHP-Unit-Test phpunit vor und analysiert die grundlegenden Konzepte, Verwendungsmethoden und zugehörigen Vorsichtsmaßnahmen des PHP-Unit-Tests phpunit in Form von Beispielen

Das Details sind wie folgt:

Was ist Unit-Test:

bezieht sich auf das Testen der Grundeinheiten in der Software, wie Funktionen, Methoden usw., um zu überprüfen, ob Ihre Rückgabewerte oder Verhaltensweisen sind wie erwartet; tatsächliche chinesische Software ist sehr komplex, besteht aus vielen Komponenten, und der Ausführungsprozess ist kohärent Stapeln, um einige Objekte zu simulieren) zum Ausführen und Um ihr Verhalten und ihren Rückgabewert zu überwachen, müssen wir dazu Programmcode schreiben, der als Testfall bezeichnet wird. Viele Testfälle werden organisch zu einem Gesamttest zusammengefasst Eine Testsuite. Der getestete Programmcode wird als Produktionscode bezeichnet. Die Software phpunit hilft uns beim Schreiben von Testfällen und bei der Durchführung von Tests.

PHP Unit Testing: phpunit

hat detaillierte Tutorials auf seiner offiziellen Website. Hier sind einige ergänzende Inhalte.

Zunächst müssen Sie verstehen, dass die PHPUnit-Software selbst über die Befehlszeile und nicht über den Browser implementiert wird.

Es ist wichtig, dies zu verstehen . Viele Neulinge stecken hier fest. Es ist sehr einfach und einfach, aber es scheint, dass es nicht oft erwähnt wurde

Nach dem Herunterladen von der offiziellen Website erhalten Sie eine Phar-Datei. Eine Einführung in die Phar-Archivdatei finden Sie unter vorheriger Artikel: Konzept und Verwendung der Phar-Datei im PHP-Entwicklungsarchivformat

Bitte laden Sie auch das PHPUnit-Nutzungsdokument herunter, installieren Sie es gemäß der darin enthaltenen Installationsmethode und geben Sie dann den folgenden Befehl in die Befehlszeile ein:

phpunit --help
Nach dem Login kopieren

Wenn die Hilfemeldung angezeigt wird, ist die Installation erfolgreich. Erstellen Sie einen Testfall als yunke.php im aktuellen Verzeichnis der Befehlszeile :

<?php
use PHPUnit\Framework\TestCase;
class yunkeTest extends TestCase
{
  public function testPushAndPop()
  {
    $stack = [];
    $this->assertEquals(0, count($stack));
    array_push($stack, &#39;foo&#39;);
    $this->assertEquals(&#39;foo&#39;, $stack[count($stack) - 1]);
    $this->assertEquals(1, count($stack));
    $this->assertEquals(&#39;foo&#39;, array_pop($stack));
    $this->assertEquals(0, count($stack));
  }
}
?>
Nach dem Login kopieren

und geben Sie dann in der Befehlszeile den folgenden Befehl ein:

phpunit yunke
Nach dem Login kopieren

zeigt den folgenden Inhalt an:

PHPUnit 5.7.12 by Sebastian Bergmann and contributors.
.                                  1 / 1 (100%)
Time: 159 ms, Memory: 7.00MB
OK (1 test, 5 assertions)
Nach dem Login kopieren

Herzlichen Glückwunsch, Sie haben es geschafft. Ein Unit-Test wurde durchgeführt. Die erste Zeile enthält die Informationen zum Autor (Sebastian Bergmann möchte gerne signiert werden sehr)

Die zweite Zeile beginnt mit einem Punkt, der angibt, dass alle Tests erfolgreich bestanden wurden

Vielleicht bin ich verwirrt, was ist mit dem obigen PHP-Code los?

Das ist ein Testfall, der einfach eine Array-Operation testet, die im Allgemeinen die folgenden vier Schritte durchläuft:

1 Der Test für die Produktionscode-Klasse wird in die Klasse geschrieben Klassentest.
2. ClassTest erbt (normalerweise) von PHPUnitFrameworkTestCase.
3. Tests sind alle öffentlichen Methoden mit dem Namen test*. Sie können auch die Annotation @test im Dokumentationskommentarblock (Docblock) der Methode verwenden, um sie als Testmethode zu markieren.
4. Innerhalb der Testmethode werden Aussagemethoden ähnlich zu assertEquals() verwendet, um Aussagen über die Übereinstimmung zwischen dem tatsächlichen Wert und dem erwarteten Wert zu treffen.

Sie können hier an mehreren Stellen verwirrt sein:

1. Die im Kommentarblock verwendeten Anmerkungen können von PHP durch Reflektion abgerufen werden, und das Programm kann die erhaltenen Informationen zur Konfiguration verwenden
2. Woher kommt die TestCase-Klasse im Testfallcode in der obigen Spalte? Wurde es nicht geladen?
Wie oben erwähnt, ist phpunit selbst in PHP-Sprache geschrieben und zur Verwendung in phar gepackt. Führen Sie bei der Ausführung zuerst die Stub-Datei Stub im Paket aus.

Sie können den obigen Anweisungen von Yunke folgen Im phar-Beitrag wurde die Methode zum Extrahieren und Wiederherstellen des phpunit.phar-Pakets vorgestellt, oder Sie können eine IDE wie phpstorm verwenden, um es direkt zu öffnen

In .phar/stub.php sehen Sie den Stub-Code, die TestCase-Klasse ist The Der im Stub-Code erforderliche Befehlszeilencode „phpunit yunke“ führt zunächst das phpunit-Skript aus, beginnend mit der Stub-Datei, und dann lädt phpunit den Testfallcode

, wie Sie sehen können Das Programm Die Ausführung startet nicht über das Testfallskript. Jetzt verstehen Sie, woher die TestCase-Klasse kommt

Verwandte Empfehlungen:

So installieren Sie PHPUnit in der CentOS-Umgebung

Implementierung der automatisierten Testfunktion der PHPUnit-Schnittstelle

Detailliertes Beispiel der PHPUnit-Integrationstestmethode des Yaf-Frameworks

Das obige ist der detaillierte Inhalt vonMethoden und Beispiele für PHP-Unit-Tests phpunit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!