Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je définis, dans mon bootstrap, un répertoire pour mes helpeurs de vue.
$view = Zend_Layout::getMvcInstance()->getView(); $view->setHelperPath(APPLICATION_PATH . '/views/helpers', 'Helper_');
Cela fonctionne très bien lorsque je suis dans mon application elle-même. Mes helpeurs sont parfaitement chargés lorsque je les appelle.
Cependant dans mes tests fonctionnels, il semble que Zend fasse un reset de la vue à chaque test (logique me direz-vous).
D'ailleurs, si dans la méthode reset de Zend_Test_PHPUnit_ControllerTestCase, je vire le
$this->frontController->resetInstance();
Mon test est correctement exécuté.
Mais du coup, bien que le bootstrap soit exécuté avant le démarrage des tests, il l'application ne connait pas correctement le chemin des helpeurs.
Et bien évidemment (ou pas), je n'ai pas accès à getMvcInstance. Et du coup pas accès à la vue et pas la possibilité de remettre ce chemin à chaque fois.
Avez-vous déjà rencontré un problème similaire ? Et comment l'avez-vous corrigé ?
Merci par avance
Dernière modification par dmathieu (27-03-2009 13:46:12)
Hors ligne
Hello,
J'ai une classe de bootstrap comportant une méthode run() et une méthode prepare().
run() commence par appeler prepare() => application normale
Dans mes tests, j'ai :
class Tests extends Zend_Test_PHPUnit_ControllerTestCase { public function setUp () { $this->bootstrap = array($this , 'appBootstrap'); parent::setUp(); } public function appBootstrap () { Bootstrap::prepare(); } ... }
Tous mes tests étendent Tests. Le $this->bootstrap est géré par Zend_Test_PHPUnit_ControllerTestCase.
A+
Hors ligne
Oui. Mais dans l'environnement de test, je n'ai pas accès à Zend_Layout::getMvcInstance().
Du coup comment récupères-tu la vue ?
Hors ligne
Hello,
Mais tu as Zend_Layout::startMvc(). Cependant je n'ai saisi le besoin de l'avoir dans tes tests. Tout ceci est appelé dans ma fonction prepare(). Regardes http://www.mikaelkael.fr/Piloter-le-cha … d-une.html pour plus de détails.
A+
Hors ligne
Hello,
Avant d'aller trop loin, il faut savoir que Zend_Application sera intégré à la prochaine 1.8 qui sortira prochainement. En attendant la sortie officielle, tu peux aller jeter un oeil à l'incubator. Le code y est aujourd'hui fonctionnel et on est en phase de documentation et de code coverage :
- doc : http://framework.zend.com/code/browse/Z … ule_specs/
- code : http://framework.zend.com/code/browse/Z … brary/Zend
- proposal (peut-être plus tout à fait à jour) : http://framework.zend.com/wiki/display/ … n+Scholzen
A+
Hors ligne
En effet si je ne charge pas le mvc, je ne vais pas y avoir accès. Merci, cela fonctionne maintenant
Merci également pour Zend_Application. Je vais regarder ça (mais je ne peux pas attendre la sortie de la 1.8 ).
Hors ligne