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