Estoy intentando escribir una prueba unitaria para un controlador usando Zend y PHPUnitcómo puedo reemplazar php: // input al hacer las pruebas unitarias
En el código consigo datos de php: // input
$req = new Zend_Controller_Request_Http();
$data = $req->getRawBody();
Mi código funciona bien cuando pruebo la aplicación real, pero a menos que pueda suministrar datos como una publicación HTTP sin procesar, $ datos siempre estarán en blanco. El método getRawBody() básicamente llama a file_get_contents ('php: // input'), pero ¿cómo anulo esto para suministrar los datos de prueba a mi aplicación?
Yeap, no es una solución perfecta, pero ¿cómo me he decidido a poner en práctica también. Gracias. –
No recomendaría esta solución, utilizando sentencias 'if' para realizar código diferente en pruebas unitarias frente a producción. Lo ideal es que su código ejecute las mismas declaraciones lógicas en ambos mundos. Ver la solución de @MitMaro a continuación, que utiliza una ruta de entrada configurable. –