Je vais avoir de la difficulté à se moquant de l'objet PDO avec PHPUnit.
Il ne semble pas être beaucoup d'informations sur le web à propos de mon problème, mais de ce que j'ai pu rassembler:
- PDO a "final" __wakeup et __le sommeil des méthodes qui l'empêche d'être sérialisés.
- PHPunit simulée de l'objet de la mise en œuvre serialises l'objet à un certain point.
- Les tests unitaires puis échouer avec une erreur PHP généré par PDO lorsque cela se produit.
Il y a une fonctionnalité conçue pour éviter ce problème, ajoutez la ligne suivante à votre unité de test:
class MyTest extends PHPUnit_Framework_TestCase
{
protected $backupGlobals = FALSE;
// ...
}
Source: http://sebastian-bergmann.de/archives/797-Global-Variables-and-PHPUnit.html
Ce n'est pas de travail pour moi, mon test produit toujours une erreur.
Plein de code de test:
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.......
Tout PHPUnit pro me donner un coup de main?
Merci,
Ben