Doctrine 2 modèles Tests unitaires
-
11-10-2019 - |
Question
Quelle est la façon de test unitaire Doctrine 2 modèles? Je l'utilise avec Zend Framework 1.11. Il a Zend_Test
qui utilise PHPUnit. Je pense que la bonne chose à utiliser est PHPUnit_Extensions_Database_TestCase
. Dans Zend Framework, je peux utiliser Zend_Test_PHPUnit_Db
. Comment puis-je modifier le code pour les modèles Doctrine de tests unitaires au lieu des classes de Zend_Db
.
1er, je pense au lieu d'utiliser des trucs Zend_Db
, je dois utiliser la substance de la doctrine à la place
class BugsTest extends Zend_Test_PHPUnit_DatabaseTestCase
{
private $_connectionMock;
protected function getConnection()
{
if($this->_connectionMock == null) {
$connection = Zend_Db::factory(...);
$this->_connectionMock = $this->createZendDbConnection(
$connection, 'zfunittests'
);
Zend_Db_Table_Abstract::setDefaultAdapter($connection);
}
return $this->_connectionMock;
}
...
}
La solution 2
J'ai trouvé DoctrineExtensions
qui a des extensions pour PHPUnit via ORMTestCase
. Utilisation ressemble à quelque chose comme
namespace MyProject\Tests;
use DoctrineExtensions\PHPUnit\OrmTestCase
class EntityFunctionalTest extends OrmTestCase
{
protected function createEntityManager()
{
return Doctrine\ORM\EntityManager::create(..);
}
protected function getDataSet()
{
return $this->createFlatXmlDataSet(__DIR__."/_files/entityFixture.xml");
}
}
Autres conseils
Que voulez-vous voulez tester? Si le modèle est juste en soi - des thats pas trop difficile. Doctrine 2 modèles sont tout simplement des objets PHP avec annotations contenant les informations de cartographie. Cest la chose bien dans Doctrine 2 être « persinstance ignorants ». Vous pouvez tester les modèles comme une classe régulière