Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie Behat für BDD-Tests in PHP

So verwenden Sie Behat für BDD-Tests in PHP

WBOY
WBOYOriginal
2023-06-27 09:27:171223Durchsuche

BDD (Behavior-Driven Development) ist ein sehr beliebtes Entwicklungsmodell. Es betont den Ausdruck von Anforderungen und Verhaltensweisen in natürlicher Sprache und stellt die Korrektheit der Entwicklung durch Testfälle sicher. Behat ist ein gängiges Tool zur Verwendung von BDD in PHP. In diesem Artikel wird beschrieben, wie Sie Behat für BDD-Tests in PHP verwenden.

1. Behat installieren

Um Behat zu installieren, müssen Sie das Terminal öffnen und den folgenden Befehl eingeben:

composer require --dev behat/behat

Dieser Befehl installiert Behat und seine Abhängigkeitspakete in Ihrem Projekt.

2. Behat-Konfigurationsdatei erstellen

Behat benötigt eine Konfigurationsdatei, um Tests auszuführen. Führen Sie den folgenden Befehl aus:

vendor/bin/behat --init

Als nächstes wird eine Konfigurationsdatei mit dem Namen behat.yml erstellt.

3. Testfälle erstellen

Behat-Testfälle werden auf Basis der Gherkin-Sprache geschrieben. Gherkin ist ein DSL in natürlicher Sprache, das das Verhalten und die Anforderungen von Software beschreiben kann. Das Folgende ist beispielsweise ein einfacher Testfall im Gherkin-Format:

Feature: 登录
  作为一个网站用户,
  我希望能够登录到网站。

  Scenario: 正确的用户名和密码
    Given 我在登录页面
    When 我输入正确的用户名和密码
    Then 我能成功登录

Als nächstes erstellen Sie ein Features-Verzeichnis und erstellen in diesem Verzeichnis eine Testfalldatei mit dem Namen login.feature.

4. Schrittdefinitionen erstellen

Schrittdefinitionen sind die Brücke zwischen Behat-Testfällen und PHP-Code, sie wandeln Testfälle in ausführbaren Code um. Führen Sie den folgenden Befehl aus, um eine Schrittdefinitionsdatei zu generieren:

vendor/bin/behat --append-snippets

Als Nächstes fordert Behat Sie auf, Code zur Datei FeatureContext.php hinzuzufügen, die sich im Verzeichnis Features/Bootstrap befindet.

Im obigen Testfall können Schrittdefinitionen beispielsweise wie folgt implementiert werden:

<?php
use BehatBehatContextContext;
use BehatBehatTesterExceptionPendingException;
use BehatBehatHookScopeAfterScenarioScope;
use BehatMinkExtensionContextMinkContext;
use BehatTestworkHookScopeBeforeSuiteScope;
use BehatchContextJsonContext;
use BehatchContextRestContext;
use DotenvDotenv;

/**
 * Feature context.
 */
class FeatureContext extends MinkContext implements Context
{
    private $baseUrl;

    /**
     * @BeforeSuite
     */
    public static function loadEnvironmentVariables(BeforeSuiteScope $scope)
    {
        if (is_readable(__DIR__ . '/../../.env')) {
            (new Dotenv(__DIR__ . '/../../'))->load();
        }
    }

    /**
     * @BeforeScenario
     */
    public function before(AfterScenarioScope $scope)
    {
        $this->baseUrl = getenv('BASE_URL');
    }

    /**
     * @Given 我在登录页面
     */
    public function 我在登录页面()
    {
        $this->visit($this->baseUrl . '/login');
    }

    /**
     * @When 我输入正确的用户名和密码
     */
    public function 我输入正确的用户名和密码()
    {
        $this->fillField('用户名', 'admin');
        $this->fillField('密码', 'password');
        $this->pressButton('登录');
    }

    /**
     * @Then 我能成功登录
     */
    public function 我能成功登录()
    {
        $this->assertPageContainsText('欢迎回来');
    }
}

5. Führen Sie den Test aus.

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

vendor/bin/behat

Wenn die Testläufe erfolgreich verlaufen sind, werden ähnliche Ergebnisse erzielt Folgendes wird ausgegeben:

1 scenario (1 passed)
3 steps (3 passed)

Wenn der Test fehlschlägt, verwenden Sie die Fehlermeldung, um das Problem zu beheben.

Fazit

Durch die Verwendung der Behat- und Gherkin-Sprachen zum Testen können Softwareverhalten und -anforderungen einfacher beschrieben werden und Tests können automatisch ausgeführt werden, wodurch Kosten und Zeit für manuelle Tests reduziert werden. In PHP-Projekten ist Behat ein sehr praktisches BDD-Testtool, das Entwicklern dabei helfen kann, die Qualität und Korrektheit von Software sicherzustellen.

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