Question

Je suis de tests unitaires de certaines extensions de Zend_Controller_Action dans SimpleTest.Je veux être en mesure de définir une url de redirection à l'aide de l'ensemble des méthodes de l'aide d'action Redirector, et ensuite utiliser du Redirecteur de l'redirectAndExit() la méthode pour rediriger plus tard dans le processus.Ce processus ne semble pas être le travail que j'ai compté à partir de la lecture de la documentation et en regardant le code de l'action du contrôleur, le redirecteur et la réponse des classes.

Voici un UnitTestCase méthode que j'ai écrit:

  public function testSetGoToUrl() {

    $request    = new Zend_Controller_Request_Http();
    $response   = new Zend_Controller_Response_Http();
    $controller = new App_Zend_Controller_Action($request, $response, array());

    $controller->getHelper('redirector')->setGoToUrl('/');

  }

Le App_Zend_Controller_Action classe est simplement un prolongement concret de la classe abstraite Zend_Controller_Action.Tout ce que je fais ici est l'instanciation de la manette et le paramétrage de l'url de redirection.SimpleTest journaliste est l'envoi des en-têtes de premier, comme prévu.Mais cette méthode de test génère un "en-têtes envoyés" l'exception " et je ne comprends pas pourquoi.Je ne suis pas au courant de tout run() ou de l'expédition() méthodes appelées dans cette situation.

Ce qui est de l'envoi de la deuxième ensemble d'en-têtes?

Était-ce utile?

La solution

Pendant le test, vous devez utiliser Zend_Controller_Response_HttpTestCase et Zend_Controller_Request_HttpTestCase.
Zend_Controller_Response_HttpTestCase::sendHeaders() retourne un tableau de tous les en-têtes qui seraient envoyés au lieu de l'exécution réelle header() des déclarations.

Elles sont aussi utilisées dans Zend_Test_PHPUnit_ControllerTestCase.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top