Comment utiliser Behat pour les tests BDD en PHP

WBOY
Libérer: 2023-06-27 10:36:01
original
1221 Les gens l'ont consulté

BDD (Behavior-Driven Development) est un modèle de développement très populaire. Il met l'accent sur l'expression en langage naturel des exigences et des comportements et garantit l'exactitude du développement à travers des cas de test. Behat est un outil courant pour utiliser BDD en PHP. Cet article explique comment utiliser Behat pour les tests BDD en PHP.

1. Installer Behat

Pour installer Behat, vous devez utiliser Composer. Ouvrez le terminal et entrez la commande suivante :

composer require --dev behat/behat
Copier après la connexion

Cette commande installera Behat et ses packages de dépendances dans votre projet.

2. Créer un fichier de configuration Behat

Behat a besoin d'un fichier de configuration pour exécuter les tests, exécutez la commande suivante :

vendor/bin/behat --init
Copier après la connexion

Ensuite, un fichier de configuration nommé behat.yml sera créé.

3. Créer des cas de test

Les cas de test Behat sont écrits sur la base du langage Gherkin. Gherkin est un DSL en langage naturel qui peut décrire le comportement et les exigences d'un logiciel. Par exemple, ce qui suit est un scénario de test simple au format Gherkin :

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

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

Ensuite, créez un répertoire de fonctionnalités et créez un fichier de scénario de test nommé login.feature dans ce répertoire.

4. Créer des définitions d'étape

Step Definitions est le pont entre les cas de test Behat et le code PHP, il convertit les cas de test en code exécutable. Exécutez la commande suivante pour générer un fichier de définitions d'étape :

vendor/bin/behat --append-snippets
Copier après la connexion

Ensuite, Behat vous demandera d'ajouter du code au fichier FeatureContext.php, qui se trouve dans le répertoire Features/bootstrap.

Par exemple, dans le cas de test ci-dessus, les définitions d'étape peuvent être implémentées comme :

<?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('欢迎回来');
    }
}
Copier après la connexion

5. Exécutez le test

Exécutez la commande suivante pour exécuter le test :

vendor/bin/behat
Copier après la connexion

Si le test s'exécute avec succès, les résultats sont similaires à ceux du test. Le message suivant s'affichera :

1 scenario (1 passed)
3 steps (3 passed)
Copier après la connexion

Si le test échoue, utilisez le message d'erreur pour résoudre le problème.

Conclusion

En utilisant les langages Behat et Gherkin pour les tests, le comportement et les exigences du logiciel peuvent être décrits plus facilement, et les tests peuvent être exécutés automatiquement, réduisant ainsi le coût et la durée des tests manuels. Dans les projets PHP, Behat est un outil de test BDD très pratique qui peut aider les développeurs à garantir la qualité et l'exactitude des logiciels.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal