Si se puede' t use xdebug_get_headers en su sistema, otro enfoque es simular la función de encabezado.
Estoy usando lo siguiente ahora, que funciona muy bien. Digamos que tiene este código ...
<?php
header('Content-type: text/plain; charset=UTF-8');
...
sustituyo header
con una función de cabecera, que es comprobable como esto ...
<?php
Testable::header('Content-type: text/plain; charset=UTF-8');
...
La clase comprobable se implementa de la siguiente manera. Tenga en cuenta que las funciones solo deben ir precedidas de Testable::
. De lo contrario, funcionan igual que las funciones habituales.
class Testable {
private static $headers=array();
static function header($header) {
if (defined('UNIT_TESTING')) {
self::$headers[]=$header;
} else {
header($header);
}
}
public static function reset() {
self::$headers=array();
}
public static function headers_list() {
if (defined('UNIT_TESTING')) {
return self::$headers;
} else {
return headers_list();
}
}
}
Ahora todo lo que necesita hacer es definir UNIT_TESTING
en sus pruebas, pero no en la producción. Luego, cuando vengas a probar tus encabezados, simplemente llama al Testable::headers_list()
.
Por supuesto, debe agregar métodos para setcookie, headers_sent y cualquier otra función que emita encabezados HTTP.
¿Está seguro de que [esta respuesta] (http://stackoverflow.com/a/190498/212940) no es correcta para su caso? – vascowhite