検索しましたが、探しているものを見つけることができず、この点でマニュアルはあまり役に立ちません。私は単体テストにかなり慣れていないので、正しい軌道に乗っているかどうかはわかりません。とにかく、質問に。私はクラスを持っています:
<?php
class testClass {
public function doSomething($array_of_stuff) {
return AnotherClass::returnRandomElement($array_of_stuff);
}
}
?>
さて、明らかに私はAnotherClass::returnRandomElement($array_of_stuff);
毎回同じものを返したいと思っています。私の質問は、単体テストで、このオブジェクトをどのようにモックアップするのですか?
テストファイルの先頭に追加しようとしましたAnotherClass
が、テストしたいときにAnotherClass
「クラスを再宣言できません」というエラーが表示されます。
ファクトリ クラスは理解していると思いますが、このインスタンスでそれをどのように適用するかはわかりません。テストデータを含む完全に別のAnotherClassクラスを作成し、実際のAnotherClassの代わりにFactoryクラスを使用してそれをロードする必要がありますか? または、工場のパターンを使用しているのは単なるニシンです。
私はこれを試しました:
$RedirectUtils_stub = $this->getMockForAbstractClass('RedirectUtils');
$o1 = new stdClass();
$o1->id = 2;
$o1->test_id = 2;
$o1->weight = 60;
$o1->data = "http://www.google.com/?ffdfd=fdfdfdfd?route=1";
$RedirectUtils_stub->expects($this->any())
->method('chooseRandomRoot')
->will($this->returnValue($o1));
$RedirectUtils_stub->expects($this->any())
->method('decodeQueryString')
->will($this->returnValue(array()));
setUp() 関数で、しかしこれらのスタブは無視され、それが間違っているのか、それともメソッドへのアクセス方法に問題があるのか わかりませんAnotherClass
。
ヘルプ!これは私を夢中にさせています。