Mockobject不返回基类的实例

时间:2014-02-24 13:31:06

标签: mocking phpunit

在下面这个函数中,我想模拟一个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返回实例?

1 个答案:

答案 0 :(得分:0)

确定。这是出了什么问题:

->setMethods('rowCount')应为->setMethods(array('rowCount'))