ホームページ >バックエンド開発 >PHPチュートリアル >PHP での動作駆動テストに PHPUnit を使用する方法

PHP での動作駆動テストに PHPUnit を使用する方法

王林
王林オリジナル
2023-06-27 17:54:22732ブラウズ

PHP は、広く使用されているオープンソース プログラミング言語です。これは、多くの Web サイトやアプリケーションの主要なテクノロジーの 1 つです。 PHP フレームワークには、いくつかの組み込み単体テスト フレームワークが用意されており、その中で最も一般的に使用されるのは PHPUnit です。 PHPUnit は、自動テスト ケースを作成して実行するための PHP テスト フレームワークです。

この記事では、PHPUnit を動作駆動型テストに使用する方法について詳しく説明します。

動作駆動テスト (BDD) とは、アプリケーション システムが期待される結果を生み出すかどうかを単にテストするのではなく、アプリケーション システムの動作をテストすることを指します。 BDD は、信頼性が高くユーザーフレンドリーなコードを作成する上で重要な役割を果たします。これには、仕様、シナリオ、ステップという 3 つの重要な要素が含まれます。

仕様はアプリケーションの動作の詳細な説明であり、シナリオは仕様のインスタンス化であり、ステップはシナリオ内のアクションと期待される結果です。 PHPUnit では、PHPUnit BDD 拡張機能を使用して BDD テストを実装できます。

BDD テストに PHPUnit を使用する手順は次のとおりです。

ステップ 1: PHPUnit をインストールする

PHPUnit は、composer を使用してインストールできます。composer.json に PHPUnit を追加するだけです。ファイル 依存関係のみ。プロジェクトフォルダーで次のコマンドを実行して、PHPUnitをインストールします。

composer require phpunit/phpunit

ステップ 2: PHPUnit BDD 拡張機能をインストールする

PHPUnit BDD 拡張機能は PHPUnit の上に構築されており、仕様、シナリオ、手順、および望ましい結果を追加するための追加機能を提供します。

PHPUnit BDD 拡張機能は、composer を使用してインストールできます。次のコマンドを実行して、PHPUnit BDD 拡張ライブラリで拡張機能を見つけます。

composer search phpunit-bdd

適切な PHPUnit BDD 拡張バージョンを選択し、composer.json ファイルに PHPUnit BDD 拡張の依存関係を追加します。次のコマンドを実行して、PHPUnit BDD 拡張機能をインストールします。

composer require behat/phpunit-bundle --dev

ステップ 3: テスト ディレクトリを作成する

プロジェクトのルート ディレクトリに、tests という名前のディレクトリを作成し、その下に features という名前のディレクトリを作成します。テストディレクトリのサブディレクトリ。

features サブディレクトリに Login.feature という名前のファイルを作成します。ファイル形式は、次のような Gherkin 言語記述である必要があります。

Feature: Login

  Scenario: A user logs in
    Given I am on the login page
    When I fill in "username" with "myusername"
    And I fill in "password" with "mypassword"
    And I press "login"
    Then I should be on the dashboard page

features ディレクトリに bootstrap.php という名前のファイルを作成します。このファイルには、テストの実行に必要な構成と、PHPUnit BDD 拡張機能の導入が含まれています。ファイルの内容は次のとおりです。

<?php

require_once __DIR__ . '/../vendor/autoload.php';

$container = new BehatTestworkServiceContainerTesterTesterContainer();
$container->set('phpunit', new BehatPHPUnitDependencyInjectionConfiguration());
$container->set('phpunit.configuration', new BehatPHPUnitConfigurationConfiguration());

ステップ 4: テスト クラスを作成する

tests ディレクトリに LoginTest.php という名前のファイルを作成します。ファイルの内容は次のとおりです。

<?php

namespace Tests;

use BehatBehatContextContext;
use BehatBehatTesterExceptionPendingException;
use BehatGherkinNodePyStringNode;
use BehatGherkinNodeTableNode;
use BehatBehatContextSnippetAcceptingContext;
use PHPUnitFrameworkTestCase;

class LoginTest extends TestCase implements Context, SnippetAcceptingContext
{
    public function testLogin()
    {
        $this->getPage('login');
        $this->fillField('username', 'myusername');
        $this->fillField('password', 'mypassword');
        $this->pressButton('login');
        $this->assertPageContainsText('dashboard');
    }
}

ステップ 5: テストの実行

プロジェクト ディレクトリで、次のコマンドを実行してテストを実行します:

vendor/bin/behat

PHPUnit自動的にテスト ケースを読み込み、テストを実行し、対応するテスト レポートを生成します。

BDD テストの利点の 1 つは、アプリケーションに対して使いやすい入出力を作成できることです。 BDD テストは、コードが適切に動作するかどうかをテストするだけでなく、コードが理解しやすく、使いやすいかどうかもテストします。これにより、チーム間の協力とコミュニケーションが促進され、開発者がユーザーのニーズやエクスペリエンスにもっと注意を払うことができるようになります。

PHPUnit で BDD テストを実装するのは難しくありません。上記の手順に従って BDD テスト ケースの作成を開始し、コードの信頼性と使いやすさを確保するだけです。

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

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