ホームページ  >  記事  >  バックエンド開発  >  Prophecy を使用して PHP 関数を拡張するにはどうすればよいですか?

Prophecy を使用して PHP 関数を拡張するにはどうすればよいですか?

王林
王林オリジナル
2024-04-11 21:57:011154ブラウズ

Prophecy を使用して PHP 機能を拡張するには、次の手順に従ってください: Composer を使用して Prophecy をインストールします。 prophesize() メソッドを使用してスタブ オブジェクトを作成します。 will() メソッドを使用して、スタブ オブジェクトの動作を設定します。 shouldHaveBeenCalled() メソッドを使用して、スタブ オブジェクトが呼び出されたことを確認します。

如何使用 Prophecy 扩展 PHP 函数?

Prophecy を使用して PHP 機能を拡張するにはどうすればよいですか?

Prophecy は、PHP の柔軟で強力なスタブ フレームワークです。これにより、テスト対象のコードを実際に変更することなく、テスト目的で使用できるスタブ オブジェクトを簡単に作成できます。

Prophecy のインストール

まず、Composer を使用して Prophecy をインストールします。

composer require prophecy/prophecy

スタブ オブジェクトを作成します

# #To スタブ オブジェクトを作成するには、

prophesize() メソッドを使用します。

$stub = $prophecy->prophesize();

このコードは、未指定のクラスまたはインターフェイスとして機能するスタブ オブジェクトを作成します。

スタブ オブジェクトの構成

次に、

will() メソッドを使用してスタブ オブジェクトの動作を構成できます。たとえば、「John Doe」を返すように getName() メソッドを構成するには、次のコマンドを使用します。

$stub->getName()->willReturn('John Doe');

Verification call

To verify that theスタブ オブジェクトが呼び出されるには、

shouldHaveBeenCalled() メソッドを使用できます。 メソッド:

$stub->getName()->shouldHaveBeenCalled();

実用的なケース

関数があるとします

greet() 、 name パラメーターを受け取り、挨拶メッセージを出力します。

function greet($name) {
    echo "Hello, $name!";
}

Prophecy を使用してスタブ オブジェクトを作成し、

greet() 関数をテストできます。

use Prophecy\Prophet;

class GreetTest extends PHPUnit_Framework_TestCase {

    public function testGreet() {
        $prophet = new Prophet;
        $stub = $prophet->prophesize();

        $stub->getName()->willReturn('John Doe');

        greet($stub->reveal());

        $stub->getName()->shouldHaveBeenCalled();
    }
}

このテストでは、

getName() メソッドが呼び出され、greet() 関数が正しい挨拶を出力します。

以上がProphecy を使用して PHP 関数を拡張するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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