Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-02-2016 13:40:39

vanpet
Nouveau membre
Date d'inscription: 29-02-2016
Messages: 3

Détacher event listener durant les tests unitaires

Bonjour,

Voici mon problème:

Dans la méthode onBootstrap de mon module, je vérifie les permissions de l'utilisateur via un Event Listener qui est appellé comme ceci:

Code:

[lang=php]    // attach permission listener to route event
    $eventManager        = $e->getApplication()->getEventManager();
    $sm = $e->getApplication()->getServiceManager();
    $permissionsListener = $sm->get('MonModule\Listener\Permissions');
    $permissionsListener->attach($eventManager);

Ceci fonctionne très bien et mon service de permission renvoie une exception lorsque l'utilisateur n'a pas le droit d'accéder à tel ou tel controlleur.

Je désire désormais tester mes controlleurs avec PHPUnit, et une approche qui me semble correcte est de tester les controlleurs en passant outre ce système de permissions (ces permissions changent régulièrement, d'ailleurs).

J'avais donc l'idée de détacher mon Event Listener au début des tests, comme ceci :

Code:

[lang=php]$sm = Bootstrap::getServiceManager();
$eventManager = $sm->get('Application')->getEventManager();
 $notifyListener = $sm->get('MonModule\Listener\Permissions');
$notifyListener->detach($eventManager);

Malheureusement, ceci ne résout pas le problème, les permissions sont toujours vérifiées. J'imagine que cet "EventManager" en test n'est pas le même que dans le module, mais alors comment faire pour que mon idée fonctionne?

Dernière modification par vanpet (29-02-2016 13:42:34)

Hors ligne

 

#2 29-02-2016 17:52:38

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Détacher event listener durant les tests unitaires

Salut, ce que tu peux faire c'est de créer un utilisateur lorsque tu fais tes tests qui a toutes les permissions comme ça ça règle ton problème.

Sinon tu peux faire en sorte d'executer tes tests dans un environnement différent et dans le cas de cet environnement tu ne check pas les permissions.

Hors ligne

 

#3 24-03-2016 19:32:40

vanpet
Nouveau membre
Date d'inscription: 29-02-2016
Messages: 3

Re: Détacher event listener durant les tests unitaires

Ok merci, on a finalement décidé de faire un mock du permission service pour tjrs retourner true.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages