Testear en symfony un Json

Hola, no consigo testear bien el formato de salida de la llamada, por más que hago y pruebo Response y JsonResponse siempre me lo devuelve en los test como text/html; charset=UTF-8 uso estas dos maneras y ninguna.

Controlador

return new Response($json, Response::HTTP_OK, array('Content-Type' => 'application/json'));

Test

$this->assertSame('application/json', $response->headers->get('Content-Type'));

o esta:

$this->assertTrue(
            $this->client->getResponse()->headers->contains(
                'Content-Type',
                'application/json'
            )
);

Si hago la llamada por un cliente REST si me lo manda como application/json.

Un saludo.

Respuestas

#1

Prueba a cambiar en tu controlador la respuesta a lo siguiente a ver si el test sigue fallando:

return new JsonResponse($json);
#2

Hola Javier, si, esa también la he probado, se me olvidó comentarlo, incluso así y tampoco: return new JsonResponse($json, Response::HTTP_OK, array('Content-Type' => 'application/json'));

Saludos

#3

¿No podria ser un problema del servidor? Yo acabo de configurar un IIS porque el formato JSON no lo traia configurado en los MIME types y daba un 404. Apache se puede configurar en httpd.conf y en mime.types (se incluye en httpd.conf) Un saludo

#4

Hola, he intentado ponerlo y nada, el caso que solo pasa cuando se hacen test, cuando hago la llamada si me devuelve bien la cabecera.

Salu2