2014-02-24 2 views
0

아래의이 함수에서, PDOStatement를 조롱하여 내 함수 loadFromStatement의 매개 변수로 제공하려고합니다. Mockobject가 baseclass의 인스턴스를 반환하지 않습니다.

/** 
* @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의 서명 경우 : oMockedPDOStatement 차례로 IllegalArgumentException를 생성하는 MockObject을 반환하지만

public static function loadFromStatement(\PDOStatement $oStatement, $aPrefixMap = NULL, $iIndex = NULL) 

.

oMockedPDOStatement은 PDOStatement에서 인스턴스를 반환 할 수 없습니까?

+0

당신이'mockBuilder'없이 시도 했습니까해야 하는가? 원하는 클래스의 인스턴스를 반환합니까? –

+0

나와 함께 생각해 주셔서 감사합니다. 해결책을 찾았습니다. 내 대답 아래를 참조하십시오. – sanders

답변

0

확인. 이것은 잘못 무엇 :

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

관련 문제