0
在這個函數中,我想模擬一個PDOStatement作爲參數給我的函數loadFromStatement。Mockobject不返回基類的實例
/**
* @expectedException ObjectNotFoundException
* @expectedExceptionMessage Unable to load site
*/
public function testLoadFromStatementThrowsObjectNotFoundException()
{
$oMockedPDOStatement = $this->getMockBuilder('\PDOStatement')
->setMethods('rowCount')
->getMock();
$oMockedPDOStatement->expects($this->any())->method('rowCount')->will($this->returnValue(0));
SubSiteFactory::loadFromStatement($oMockedPDOStatement);
}
這是函數loadFromStatement
的簽名:
public static function loadFromStatement(\PDOStatement $oStatement, $aPrefixMap = NULL, $iIndex = NULL)
然而oMockedPDOStatement
返回MockObject
繼而產生一個IllegalArgumentException。
爲什麼oMockedPDOStatement
不能返回PDO的實例?
你有沒有試過不'mockBuilder'?它返回所需類的實例? –
謝謝你和我一起思考。我找到了解決方案。見下面我的答案。 – sanders