PHPUnit で Spy オブジェクトを使用するにはどうすればよいですか? オブジェクトを模倣して呼び出すことができ、その後、それが何回呼び出されたかをアサートできます。スパイです。
私はPHPUnitの「モック」をスタブオブジェクトとモックオブジェクトとして知っています。
実行時に PHPUnit でモックが呼び出された回数をアサートできます。
$mock = $this->getMock('SomeClass');
$mock->expects($this->exactly(5))
->method('someMethod')
->with(
$this->equalTo('foo'), // arg1
$this->equalTo('bar'), // arg2
$this->equalTo('baz') // arg3
);
その後、モックを呼び出す TestSubject で何かを呼び出すと、引数 foo、bar、baz で SomeClass someMethod が 5 回呼び出されないと、PHPUnit はテストに失敗します。以外にもいくつかの追加のマッチャーexactly
があります。
さらに、 PHPUnit as には、バージョン 4.5 以降、Prophecy を使用してテスト ダブルを作成するためのサポートが組み込まれています。この代替テスト ダブル フレームワークを使用してスタブ、スパイ、およびモックを作成、構成、および使用する方法の詳細については、Prophecyのドキュメントを参照してください。