Pregunta

Estoy probando algunas extensiones de Zend_Controller_Action en SimpleTest.Quiero poder configurar una URL de redireccionamiento usando los métodos establecidos del asistente de acción del Redirector y luego usar el método de redirecciónAndExit() del Redirector para redirigir más adelante en el proceso.Este proceso no parece estar funcionando como esperaba al leer la documentación y observar el código en el controlador de acción, el redirector y las clases de respuesta.

Aquí hay un método UnitTestCase que escribí:

  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 clase App_Zend_Controller_Action es simplemente una extensión concreta de la clase abstracta Zend_Controller_Action.Todo lo que estoy haciendo aquí es crear una instancia del controlador y configurar la URL de redirección.El reportero de SimpleTest envía los encabezados primero, como se esperaba.Pero este método de prueba genera una excepción de "encabezados enviados" y no entiendo por qué.No tengo conocimiento de que se haya llamado a ningún método run() o despacho() en esta situación.

¿Qué envía el segundo conjunto de encabezados?

¿Fue útil?

Solución

Mientras realiza la prueba, debe utilizar Zend_Controller_Response_HttpTestCase y Zend_Controller_Request_HttpTestCase.
Zend_Controller_Response_HttpTestCase::sendHeaders() devuelve una matriz de todos los encabezados que se enviarían en lugar de ejecutar real header() declaraciones.

Estos también se utilizan en Zend_Test_PHPUnit_ControllerTestCase.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top