Akka Route TestKit no pudo deserializar la respuesta como String.
Tengo el siguiente test:
"Fallará si la fecha tiene un formato incorrecto" in {
val endpoint = s"/api/prof?date=wrongdate"
Get(endpoint) ~> check {
status shouldBe StatusCodes.BadRequest
val resp = responseAs[String]
resp shouldBe "could not be parsed"
}
}
Sin embargo, el test falla con el siguiente mensaje:
No se pudo procesar la respuesta para el tipo 'java.lang.String' para la afirmación <code>responseAs</code>: akka.http.scaladsl.unmarshalling.Unmarshaller$UnsupportedContentTypeException: ContentType no soportado [Some(text/plain; charset=UTF-8)], soportados: application/json
La respuesta fue: HttpResponse(400 Bad Request,List(),HttpEntity.Strict(text/plain; charset=UTF-8,106 bytes total),HttpProtocol(HTTP/1.1))
¿Cómo puedo obtener el cuerpo de la respuesta como un String?
davy.ai
Necesitas agregar la siguiente instrucción de importación a tu archivo de prueba:
Luego, reemplaza la línea:
con:
Esto usará la utilidad de
Unmarshal
de Akka HTTP para extraer la entidad de respuesta como un tipoString
. El métodofutureValue
se utiliza para bloquear hasta que el valor esté disponible.