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.
Pour installer Behat, vous devez utiliser Composer. Ouvrez le terminal et entrez la commande suivante :
composer require --dev behat/behat
Cette commande installera Behat et ses packages de dépendances dans votre projet.
Behat a besoin d'un fichier de configuration pour exécuter les tests, exécutez la commande suivante :
vendor/bin/behat --init
Ensuite, un fichier de configuration nommé behat.yml sera créé.
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 我能成功登录
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.
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
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('欢迎回来'); } }
Exécutez la commande suivante pour exécuter le test :
vendor/bin/behat
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)
Si le test échoue, utilisez le message d'erreur pour résoudre le problème.
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!