Heim > Backend-Entwicklung > PHP-Tutorial > So verwenden Sie PHPUnit für verhaltensgesteuerte Tests in PHP

So verwenden Sie PHPUnit für verhaltensgesteuerte Tests in PHP

王林
Freigeben: 2023-06-27 20:26:01
Original
757 Leute haben es durchsucht

PHP ist eine weit verbreitete Open-Source-Programmiersprache. Es ist eine der Haupttechnologien für viele Websites und Anwendungen. Das PHP-Framework bietet mehrere integrierte Unit-Testing-Frameworks, von denen PHPUnit das am häufigsten verwendete ist. PHPUnit ist ein PHP-Testframework zum Schreiben und Ausführen automatisierter Testfälle.

In diesem Artikel werden wir uns eingehend mit der Verwendung von PHPUnit für verhaltensgesteuerte Tests befassen.

Behavior Driven Testing (BDD) bezieht sich auf das Testen des Verhaltens des Anwendungssystems und nicht nur darauf, zu testen, ob das Anwendungssystem erwartete Ergebnisse liefert. BDD spielt eine wichtige Rolle beim Schreiben von zuverlässigem und benutzerfreundlichem Code. Es umfasst drei Schlüsselelemente: Spezifikation, Szenario und Schritt.

Eine Spezifikation ist eine detaillierte Beschreibung des Anwendungsverhaltens, ein Szenario ist eine Instanziierung der Spezifikation und Schritte sind die Aktionen und erwarteten Ergebnisse im Szenario. In PHPUnit können BDD-Tests mithilfe der PHPUnit BDD-Erweiterung implementiert werden.

Die folgenden Schritte sind für die Verwendung von PHPUnit für BDD-Tests erforderlich:

Schritt 1: PHPUnit installieren

PHPUnit kann mit Composer installiert werden. Fügen Sie einfach die PHPUnit-Abhängigkeit in der Datei „composer.json“ hinzu. Führen Sie den folgenden Befehl im Projektordner aus, um PHPUnit zu installieren.

composer require phpunit/phpunit
Nach dem Login kopieren

Schritt 2: Installieren Sie die PHPUnit BDD-Erweiterung

Die PHPUnit BDD-Erweiterung baut auf PHPUnit auf und bietet einige zusätzliche Funktionen zum Hinzufügen von Spezifikationen, Szenarien, Schritten und gewünschten Ergebnissen.

PHPUnit BDD-Erweiterung kann mit Composer installiert werden. Führen Sie den folgenden Befehl aus, um die Erweiterung in der PHPUnit BDD-Erweiterungsbibliothek zu finden:

composer search phpunit-bdd
Nach dem Login kopieren

Wählen Sie eine geeignete PHPUnit BDD-Erweiterungsversion aus und fügen Sie dann die PHPUnit BDD-Erweiterungsabhängigkeit in der Datei „composer.json“ hinzu. Führen Sie den folgenden Befehl aus, um die PHPUnit BDD-Erweiterung zu installieren:

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

Schritt 3: Erstellen Sie ein Testverzeichnis

Erstellen Sie im Stammverzeichnis des Projekts ein Verzeichnis mit dem Namen „tests“ und erstellen Sie unter dem Verzeichnis „tests“ ein Unterverzeichnis mit dem Namen „features“.

Erstellen Sie eine Datei mit dem Namen Login.feature im Unterverzeichnis „features“. Das Dateiformat sollte eine Gherkin-Sprachbeschreibung sein, wie unten gezeigt:

Feature: Login

  Scenario: A user logs in
    Given I am on the login page
    When I fill in "username" with "myusername"
    And I fill in "password" with "mypassword"
    And I press "login"
    Then I should be on the dashboard page
Nach dem Login kopieren

Erstellen Sie eine Datei mit dem Namen bootstrap.php im Features-Verzeichnis. Diese Datei enthält einige notwendige Konfigurationen für die Testausführung sowie die Einführung der PHPUnit BDD-Erweiterung. Der Inhalt der Datei ist wie folgt:

<?php

require_once __DIR__ . '/../vendor/autoload.php';

$container = new BehatTestworkServiceContainerTesterTesterContainer();
$container->set('phpunit', new BehatPHPUnitDependencyInjectionConfiguration());
$container->set('phpunit.configuration', new BehatPHPUnitConfigurationConfiguration());
Nach dem Login kopieren

Schritt 4: Schreiben Sie die Testklasse

Erstellen Sie eine Datei mit dem Namen LoginTest.php im Testverzeichnis. Der Inhalt der Datei lautet wie folgt:

<?php

namespace Tests;

use BehatBehatContextContext;
use BehatBehatTesterExceptionPendingException;
use BehatGherkinNodePyStringNode;
use BehatGherkinNodeTableNode;
use BehatBehatContextSnippetAcceptingContext;
use PHPUnitFrameworkTestCase;

class LoginTest extends TestCase implements Context, SnippetAcceptingContext
{
    public function testLogin()
    {
        $this->getPage('login');
        $this->fillField('username', 'myusername');
        $this->fillField('password', 'mypassword');
        $this->pressButton('login');
        $this->assertPageContainsText('dashboard');
    }
}
Nach dem Login kopieren

Schritt 5: Test ausführen

Führen Sie im Projektverzeichnis den folgenden Befehl aus, um den Test auszuführen:

vendor/bin/behat
Nach dem Login kopieren

PHPUnit lädt den Testfall automatisch, führt den Test aus und generiert ihn den entsprechenden Prüfbericht.

Ein Vorteil von BDD-Tests besteht darin, dass benutzerfreundliche Ein- und Ausgaben für die Anwendung erstellt werden. BDD-Tests testen nicht nur, ob der Code ordnungsgemäß funktioniert, sondern auch, ob der Code leicht zu verstehen und zu verwenden ist. Es fördert die Zusammenarbeit und Kommunikation zwischen Teams und ermöglicht es Entwicklern, den Bedürfnissen und Erfahrungen der Benutzer mehr Aufmerksamkeit zu schenken.

Die Implementierung von BDD-Tests in PHPUnit ist nicht schwierig. Befolgen Sie einfach die oben genannten Schritte, um mit dem Schreiben von BDD-Testfällen zu beginnen und die Zuverlässigkeit und Benutzerfreundlichkeit Ihres Codes sicherzustellen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHPUnit für verhaltensgesteuerte Tests in PHP. 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