Domanda

Io sto testando alcune estensioni di zend_Controller_action in SempleTest. Voglio essere in grado di impostare un URL di reindirizzamento utilizzando i metodi impostati del rediirector action helper, quindi utilizzare il metodo RedirectalDexit () Redirector per reindirizzare in modo effettivamente il processo. Questo processo non sembra funzionare come previsto dalla lettura della documentazione e di considerare il codice nel controller di azione, la rediirector e le classi di risposta.

Ecco un metodo unittista Ho scritto:

  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('/');

  }
.

La classe App_Zend_Controller_action è semplicemente un'estensione concreta della classe Abstract Zend_Controller_Action. Tutto ciò che sto facendo qui sta istanziando il controller e impostando l'URL di reindirizzamento. Il giornalista semplificatore sta inviando prima le intestazioni, come previsto. Ma questo metodo di prova genera un'eccezione "intestazioni inviate" e non capisco perché. Non sono a conoscenza di alcun metodo di esecuzione () o di spedizione () che viene chiamato in questa situazione.

Cosa invia il secondo set di intestazioni?

È stato utile?

Soluzione

Durante il test è necessario utilizzare Zend_Controller_Response_HttpTestCase e Zend_Controller_Request_HttpTestCase.
Zend_Controller_Response_HttpTestCase::sendHeaders() restituisce una serie di tutte le intestazioni che verrebbero inviate invece di eseguire le dichiarazioni header() reali.

Questi sono anche utilizzati in Zend_Test_PHPUnit_ControllerTestCase.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top