Symfony 2 – Comment accéder à Doctrine depuis un test unitaire
Il est possible que durant votre développement avec le framework Symfony 2 (version BETA 5 à l’heure où j’écris) vous ayez besoin d’accéder à vos Entities depuis vos tests unitaires.
Il n’a pas été facile de trouver le moyen de communiquer avec Doctrine depuis ces foutus test unitaire ! C’est pour cela que je vous livre mon code, enfin celui d’un test unitaire.
Donc cette classe montre comment accéder a l’ORM de doctrine depuis une classe de test unitaire qui va donc, normalement, être exécuté avec PHPUnit !
namespace WaldoModelBundleTestsDataFixtures; use SymfonyBundleFrameworkBundleTestWebTestCase; // Très important, c'est grâce à lui que l'on peut utiliser la méthode "$this->getKernelClass()" class DataFixturesTest extends WebTestCase { public function __construct() { $kernelNameClass = $this->getKernelClass(); // Récupération du nom de la classe qui sert de kernel $kernel = new $kernelNameClass('test', true); // Instanciation de la classe et exécution du kernel dans un environnement de test avec débogage $kernel->boot(); // On boot le kernel (comme un pc ^^) $this->em = $kernel->getContainer()->get('doctrine.orm.entity_manager'); // On récupère entity manager } public function testPurgeData() { //... // On peut maintenant appeler les méthodes de l'ORM de Doctrine $query = $this->em->getConnection()->query('SELECT * FROM UNE_SUBLIME_TABLE'); $this->assertEmpty($query->fetchAll()); } }
Laisser un commentaire