7

PHPUnit で Spy オブジェクトを使用するにはどうすればよいですか? オブジェクトを模倣して呼び出すことができ、その後、それが何回呼び出されたかをアサートできます。スパイです。

私はPHPUnitの「モック」をスタブオブジェクトとモックオブジェクトとして知っています。

4

3 に答える 3

11

実行時に 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のドキュメントを参照してください。

于 2011-02-07T16:44:18.943 に答える