ホームページ  >  記事  >  バックエンド開発  >  PHP での BDD テストに Behat を使用する方法

PHP での BDD テストに Behat を使用する方法

WBOY
WBOYオリジナル
2023-06-27 09:27:171206ブラウズ

BDD (動作駆動開発) は非常に人気のある開発モデルであり、要件と動作の自然言語表現を重視し、テスト ケースを通じて開発の正確性を保証します。 Behat は PHP で BDD を使用するための一般的なツールです。この記事では、PHP で BDD テストに Behat を使用する方法を紹介します。

1. Behat のインストール

Behat をインストールするには、Composer を使用する必要があります。ターミナルを開いて次のコマンドを入力します:

composer require --dev behat/behat

このコマンドは、Behat とその依存関係をインストールします。パッケージをプロジェクトに追加します。

2. Behat 設定ファイルの作成

Behat にはテストを実行するための設定ファイルが必要なので、次のコマンドを実行します:

vendor/bin/behat --init

次に、behat.yml という名前のファイルが作成されます設定ファイル。

3. テスト ケースの作成

Behat テスト ケースは Gherkin 言語に基づいて作成されます。 Gherkin は、ソフトウェアの動作と要件を記述することができる自然言語 DSL です。たとえば、以下は Gherkin 形式の単純なテスト ケースです。

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

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

次に、features ディレクトリを作成し、このディレクトリに login.feature という名前のテスト ケース ファイルを作成します。

4. ステップ定義の作成

ステップ定義は、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('欢迎回来');
    }
}

5. テストの実行

次のコマンドを実行してテストを実行します。 ##

vendor/bin/behat

テストに合格すると、次のような結果が出力されます。

1 scenario (1 passed)
3 steps (3 passed)
##テストが失敗した場合は、エラー メッセージに基づいて問題のトラブルシューティングを行います。

結論

Behat 言語と Gherkin 言語をテストに使用すると、ソフトウェアの動作と要件をより簡単に記述でき、テストを自動的に実行できるため、手動テストのコストと時間が削減されます。 PHP プロジェクトにおいて、Behat は非常に実用的な BDD テスト ツールであり、開発者がソフトウェアの品質と正確性を確認するのに役立ちます。

以上がPHP での BDD テストに Behat を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。