Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Testear en symfony un Json

18 de julio de 2016

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);

@javiereguiluz

18 julio 2016, 15:45
#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

@AlbertoVioque

18 julio 2016, 15:58
#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

@antoniogarcia78

28 julio 2016, 9:09
#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

@AlbertoVioque

28 julio 2016, 15:18