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;
    }
    ...
}
Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top