0
所以我有這個構建器運行一個buildClass方法,該方法應該是公共的,它需要一些參數。PHPUnit Stub,我想替換測試中的函數
在我的測試中,我想完全刪除這些參數,並在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