私はPHPとPHPUnitを使っているプログラマです。私はRSpecからPHPUnitへの切り替えに少し苦労してきました。PHPUnitの `expect_any_instance_of`と同等
具体的には、RSpecにはexpect_any_instance_of
と呼ばれる本当に素晴らしいスタブメソッドがあり、どのクラスのインスタンスでもスタブすることができます。
私はPHPUnitで同等のものを探すのに苦労しています。私はRemoteAPIClassObject
インスタンスの一部である方法makeCall
をスタブしたい
<?php
use PHPUnit\Framework\TestCase;
class SomeClass
{
public function testMethod()
{
$api_interface = new RemoteAPIClassObject();
$result = $api_interface->makeCall()
$this->assertEquals('foo', $result->api_response);
}
}
?>
:
は、ここでは、コードの私のシナリオです。 PHPUnitでこれを行う方法はありますか?テストスイートを実行するたびにリモートAPIを呼び出す必要はありません。
私はPHPUnit test doubles and class mocksについて読んだことがありますが、PHPUnitのすべてのスタブ/モックメソッドは、私がスタブしようとしているメソッドがコールスタックの下にあるので、スタブインスタンスを返すようです。 RSpecので
私はちょうど呼び出しをスタブにし、私は先に述べた方法を使用します。
expect_any_instance_of(RemoteAPIClassObject).to receive(:makeCall).and_return(some_stubbed_object)
を多分私の戦略がオフになっていると私は私のテストを再考する必要がありますか?
こんにちは! PHPの世界へようこそ。私は過去に 'Mockery'を使用しました(PHPUnitモックは表現力豊かではありません)。 http呼び出しを嘲笑えるために、 'php-vcr'は素敵なプロジェクトです。 – fedeisas