Прошу прощения, если мне не хватает чего-то простого, но я пытаюсь использовать Akka HTTP с Circe (используя https://github.com/hseeberger/akka-http-json модуль Circe). Я пытаюсь получить результаты вызова GET в ScalaTest, который смешивается с чертой ErrorAccumulatingCirceSupport
. Вызов проходит успешно, но я не могу демаршалировать ответ ... Это довольно простой тест, но я просто не уверен, как демаршалировать результаты в список объектов домена, например:
Get("/path/to/getfoos").withHeaders(auth) ~> Route.seal(service.route) ~> check {
import io.circe.generic.auto._
status shouldEqual StatusCodes.OK
contentType should ===(ContentTypes.`application/json`)
val reports = responseAs[List[Foo]]
reports.size shouldBe 1
}
Я получаю следующее сообщение об ошибке:
Could not unmarshal response to type 'scala.collection.immutable.List' for `responseAs` assertion: de.heikoseeberger.akkahttpcirce.ErrorAccumulatingCirceSupport$DecodingFailures: DecodingFailure at [0]: CNil
Если кто-то может указать, в чем я ошибаюсь, я был бы очень признателен за помощь!
Спасибо!
Foo
определением? - person Travis Brown   schedule 07.02.2019Foo
на самом деле является ADT (подтип класса case of a sealed trait), состоящий из других ADT, хотя ни один из них не является очень сложным. Мне удалось заставить его работать, получивHttpEntity
и используя на немUnmarshal
(я отправлю код ниже на случай, если есть лучший способ решить эту проблему). Спасибо за ответ! - person Timothy Perrigo   schedule 07.02.2019