BDD (動作駆動開発) は非常に人気のある開発モデルであり、要件と動作の自然言語表現を重視し、テスト ケースを通じて開発の正確性を保証します。 Behat は PHP で BDD を使用するための一般的なツールです。この記事では、PHP で BDD テストに Behat を使用する方法を紹介します。
Behat をインストールするには、Composer を使用する必要があります。ターミナルを開いて次のコマンドを入力します:
composer require --dev behat/behat
このコマンドは、Behat とその依存関係をインストールします。パッケージをプロジェクトに追加します。
Behat にはテストを実行するための設定ファイルが必要なので、次のコマンドを実行します:
vendor/bin/behat --init
次に、behat.yml という名前のファイルが作成されます設定ファイル。
Behat テスト ケースは Gherkin 言語に基づいて作成されます。 Gherkin は、ソフトウェアの動作と要件を記述することができる自然言語 DSL です。たとえば、以下は Gherkin 形式の単純なテスト ケースです。
Feature: 登录 作为一个网站用户, 我希望能够登录到网站。 Scenario: 正确的用户名和密码 Given 我在登录页面 When 我输入正确的用户名和密码 Then 我能成功登录
次に、features ディレクトリを作成し、このディレクトリに login.feature という名前のテスト ケース ファイルを作成します。
ステップ定義は、Behat テスト ケースと PHP コードの間のブリッジであり、テスト ケースを実行可能コードに変換します。次のコマンドを実行して、ステップ定義ファイルを生成します。
vendor/bin/behat --append-snippets
次に、Behat は、features/bootstrap ディレクトリにある FeatureContext.php ファイルにコードを追加するように要求します。
たとえば、上記のテスト ケースでは、ステップ定義は次のように実装できます:
<?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('欢迎回来'); } }
次のコマンドを実行してテストを実行します。 ##
vendor/bin/behatテストに合格すると、次のような結果が出力されます。
1 scenario (1 passed) 3 steps (3 passed)##テストが失敗した場合は、エラー メッセージに基づいて問題のトラブルシューティングを行います。
結論
以上がPHP での BDD テストに Behat を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。