Unit Testing Doctrine 2 Modelli
-
11-10-2019 - |
Domanda
Che cosa è il modo di test di unità Doctrine 2 modelli? Io lo utilizzo con Zend Framework 1.11. Ha Zend_Test
che utilizza PHPUnit. Penso che la cosa giusta da utilizzare è PHPUnit_Extensions_Database_TestCase
. In Zend Framework, posso usare Zend_Test_PHPUnit_Db
. Come posso modificare il codice per modelli di Doctrine unit test, invece di classi Zend_Db
.
prima, penso che invece di usare roba Zend_Db
, devo usare la roba di Doctrine al posto
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;
}
...
}
Soluzione 2
DoctrineExtensions
che ha le estensioni per PHPUnit via ORMTestCase
. sguardi di utilizzo qualcosa come
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");
}
}
Altri suggerimenti
Che cosa vuoi di prova? Se il suo solo il modello di per sé - quello non è troppo difficile. modelli Dottrina 2 sono semplicemente oggetti PHP con le annotazioni che contengono le informazioni di mapping. Questo è il cosa buona di Doctrine 2 dell'essere "persinstance ignoranti":. È possibile testare i modelli come qualsiasi classe normale