PHPUnit으로 PDO 객체를 조롱하는 데 어려움이 있습니다.PHPUnit을 사용하여 PDO 객체를 조롱
내 문제에 대한 웹 그러나 나는 무엇을 수집 할 수 있습니다에서 많은 정보가있을 것 같지 않습니다
- PDO는 '마지막'__wakeup 및 직렬화되지 않도록 __sleep 방법이있다.
- PHPunit의 mock 객체 구현은 어느 시점에서 객체를 직렬화합니다.
- 그런 다음 단위 테스트는 PDO에서 발생하는 PHP 오류로 실패합니다.이
class MyTest extends PHPUnit_Framework_TestCase { protected $backupGlobals = FALSE; // ... }
출처 : http://sebastian-bergmann.de/archives/797-Global-Variables-and-PHPUnit.html이
나를 위해 작업이 밤은, 내 테스트는 여전히 생산이 문제를 방지하는 의미 기능이 당신의 단위 테스트에 다음 줄을 추가하여이
오류.
전체 테스트 코드 :
class MyTest extends PHPUnit_Framework_TestCase
{
/**
* @var MyTest
*/
private $MyTestr;
protected $backupGlobals = FALSE;
/**
* Prepares the environment before running a test.
*/
protected function setUp()
{
parent::setUp();
}
/**
* Cleans up the environment after running a test.
*/
protected function tearDown()
{
parent::tearDown();
}
public function __construct()
{
$this->backupGlobals = false;
parent::__construct();
}
/**
* Tests MyTest->__construct()
*/
public function test__construct()
{
$pdoMock = $this->getMock('PDO', array('prepare'), array(), '', false);
$classToTest = new MyTest($pdoMock);
// Assert stuff here!
}
// More test code.......
없음 phpunit을이의 나에게 손을주는 프로?
감사합니다,
벤
이 작업을 수행합니다. 감사! – uckelman
당신은 아빠입니다! 대단히 감사합니다. 나는이 문제를 해결하기 위해 포기했다! –
나는 원래의 포스터와 같은 문제가있어서 당신의 솔루션을 사용했다. 그러나 이제는 내 타입 힌팅이 더 이상 PDO로 보지 않습니다. 'PDO의 인스턴스 여야합니다, 주어진 Mock_PDOMock_96936f72 인스턴스' – nvanesch