테스트 할 DB 어댑터를 사용하는 모델이 있습니다. DB 어댑터의 생성자는 모든 DB 연결을 처리하므로 테스트 중에는 피하고 싶습니다. 그렇지 않으면 db pass/db username과 관련하여 오류가 반환됩니다.disableOriginalConstructor() and will() conflict
내가 현재 실행중인 코드는 아래에서 볼 수 있듯이 disableOriginalConstructor()
을 사용하여 생성자를 호출하지 못하게합니다. PHPUnit_Framework_MockObject_Builder_InvocationMocker에 전달
정의3210인수 1 : (가) 인터페이스 PHPUnit_Framework_MockObject_Stub를 구현해야합니다 의 예를 :
문제는 내가
$mysql_stub
will()
에서 사용하려고하면 나는이 오류를 얻고 있다는 것입니다 Mock_Pages_MySQL_Page_46612429 라인 185 /Applications/MAMP/htdocs/lib/Pages/trunk/Tests/Unit/PageTest.php 호출 주어와
누군가가 조언 할 수 있습니까? 올바른 구문은 무엇입니까?
class Page {
public function getByUrl($url)
{
$db_page = $this->getDAOInterface();
$db_page->getByUrl($url);
$this->assign($db_page);
return $this;
}
}
class PageTest extends PHPUnit_Framework_TestCase
{
public function testGetByUrl()
{
$test_url = "foo-bar";
$page_stub = $this->getMock(
'Pages_Model_Page',
array('getDAOInterface', 'assign')
);
$mysql_stub = $this->getMockBuilder('Pages_MySQL_Page')
->setMethods(array('getByUrl'))
->disableOriginalConstructor()
->getMock();
$mysql_stub->expects($this->once())
->method('getByUrl')
->with($this->equalTo($test_url));
$page_stub->expects($this->once())
->method('getDAOInterface')
->with()
->will($mysql_stub);
$page_stub->expects($this->once())
->method('assign')
->with($mysql_stub);
$page_stub->geByUrl($test_url);
}
}