在下面这个函数中,我想模拟一个PDOStatement,作为我的函数loadFromStatement的参数。
/**
* @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
无法从PDOStatement返回实例?
答案 0 :(得分:0)
确定。这是出了什么问题:
->setMethods('rowCount')
应为->setMethods(array('rowCount'))