アプリケーションでハードコードされたオブジェクトのメソッドをスタブするにはどうすればよいですか? rspecにはメソッドallow_any_instance_of
があります。オブジェクトのインスタンスにメソッドをスタブします
依存関係を元に戻すことはできませんが、オブジェクトの初期化はまだハードコードされているはずです。
ので、私はにClassA
namespace App
class ClassA
{
public function doSomething(){
// more code
return($sth);
}
}
を持っていることは、私は、これはあなたが探しているものだと思いますClassBの
namespace App
class ClassB
{
protected $instanceOfA;
public function __construct(){
$this->instnaceOfA = new ClassA();
}
public function methodToTest(){
$result = $this->instanceOfA->doSomething()
// more code
}
}
新しいReflectionClass? – astroanu
私が見るところでは、ReflectionClassはクラスに関する情報を読み込み、クラス自体を変更する必要があります。私は何年もPHPをやっていません。 – Michal
いくつかのコードを投稿し、例を挙げます。 – astroanu