0
ビルドクラスをpublicにするbuildClassメソッドを実行し、いくつかの引数が必要です。PHPUnitスタブ、テスト中の関数を置き換えたい
私のテストでは、これらの引数を完全に削除し、PHPUnitのMockを使って完全に異なるものを追加したいと思います。
ので:から:
class ClassBuilder{
public function buildClass($id, $some, $vars){
$class = new Class($id, $some, $vars);
return self::getClass(db_Class, $class);
}
}
だから、ここに私のアイデアを得るかもしれないが、私はそれがそこにリターン機能を行うようモックを作りたいです。
$myClassStub->getMock("ClassBuilder");
$myClassStub->->expects($this->any())
->method("buildClass")
->with($this->anything(), $this->anything())
->will($this->returnCallback("getClass"));
しかし、どのように動作するのかわかりません。これは私がそれがどのようになると思うかですが、議論をどこに置くべきか分かりません。私をここで助けてください、多くのappriciated。
/マーカス
これで、$ yourClassToReturnも模擬インスタンスになりますか?だから私は同じ方法でそれを設定します。ブリリアント。しかし、ビルダーを使用して構築したいクラスは、ClassBuilderの別のクラスから作成されます。したがって、私はクラスビルダーで関数を実行したいと思っています。これはプライベート関数であるためです。それは可能ですか? – Oldek
ポイントは、ClassBuilderを模倣したときに、偽の "buildClass"がそれらとやりとりすることはないので、プライベートメソッドは気にしません。あなたは論理を持たずに「まさにこれをやる」と言います。 (それが理にかなって、私はあなたを正しく理解していますか?) – edorian
私の意図は、機能の一部を模擬して、他の部分をテストすることです。 – Oldek