Según this lista de discusión, la forma recomendada para acceder a los recursos de la aplicación en un controlador de Zend MVC es:Ajuste del InvokeArg correcta al ejecutar controlador de Zend Framework en Zend_Test aprovechar
$this->getInvokeArg('bootstrap')->getResource('foo');
Esto funciona en la producción (cuando navegando a la página web correspondiente). Sin embargo, cuando pruebo una acción del controlador que contiene este código con Zend_Test_PHPUnit_ControllerTestCase
, obtengo:
PHP Fatal error: Llamada a una función miembro getResource() en un objeto no ... en/application/controllers/IndexController.php on línea 12
Hasta la introducción que getInvokeArg
cosa, las pruebas funcionó muy bien. La pregunta es, ¿cómo puedo hacer que la forma "recomendada" de acceder a los recursos funcione en el arnés de prueba?
acaba de comprobar: $this->getFrontController()->getParam('bootstrap')->getResource('foo')
tampoco funciona.
ACTUALIZACIÓN: Me hago llamar a la rutina de carga de aplicaciones con phpunit --bootstrap ./scripts/application_bootstrap.php ...
y sé que ejecuta bien.
Y no tengo:
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap();
jason, no importa lo que pruebo. Solo un "despacho" único en un caso de prueba, activando la acción del controlador bajo prueba, desencadenará el problema. Zero afirma. El controlador funciona bien en producción, pero explota en Zend_Test/PHPUnit. –