2012-02-08 14 views
9

Tengo una aplicación basada en Symfony2 + Doctrine2 para la cual quiero crear algunas pruebas (usando phpunit).Accesorios temporales Doctrine2 para probar con phpunit

Por ejemplo, si quiero probar un único validador con un registro en la base de datos, quiero crear un registro con el que pueda trabajar, pero después de la prueba ya no lo necesito. Entonces, ¿hay alguna manera de crear dispositivos temporales (o virtuales) o tengo que crearlos y eliminarlos manualmente?

Respuesta

20

Puede utilizar Doctrine DataFixture y poner este código en el método de configuración de una clase de prueba de unidad:

$loader = new Doctrine\Common\DataFixtures\Loader; 
$loader->loadFromDirectory('/path/to/MyDataFixtures'); 
$purger = new Doctrine\Common\DataFixtures\Purger\ORMPurger($em); 
$executor = new Doctrine\Common\DataFixtures\Executor\ORMExecutor($em, $purger); 
$executor->execute($loader->getFixtures()); 

puede hacer referencia a la documentación para ver cómo crear clases DataFixture.

Aquí es un buen ejemplo de cómo hacerlo: Symfony 2 + Doctrine 2 + PHPUnit 3.5: Serialization of closure exception

PD: suponga que tiene un trabajo em $ (EntityManager) en este ejemplo.

+2

O, $ loader = new \ Symfony \ Bridge \ Doctrine \ DataFixtures \ ContainerAwareLoader (static :: $ kernel-> getContainer()); Si necesita utilizar un dispositivo que implementa ContainerAwareInterface. ¡Además, gracias! Solo usé esta respuesta. – skqr

+0

¿El PRMPurger realmente requiere $ em para su iniciación? – Tjorriemorrie

+0

¿cuál es la mejor manera de cargar todos los accesorios de los directorios src? –

Cuestiones relacionadas