Ich habe ein einfaches Spray-Client verspotten:Wie Spray-Client-Antwort
val pipeline = sendReceive ~> unmarshal[GoogleApiResult[Elevation]]
val responseFuture = pipeline {Get("http://maps.googleapis.com/maps/api/elevation/jsonlocations=27.988056,86.925278&sensor=false") }
responseFuture onComplete {
case Success(GoogleApiResult(_, Elevation(_, elevation) :: _)) =>
log.info("The elevation of Mt. Everest is: {} m", elevation)
shutdown()
case Failure(error) =>
log.error(error, "Couldn't get elevation")
shutdown()
}
Voll Code kann here gefunden werden.
Ich möchte die Antwort des Servers zum Testen der Logik in den Success
und Failure
Fällen spotten. Die einzige relevante Information, die ich fand, war here, aber ich war nicht in der Lage, das Kuchenmuster zu verwenden, um die sendReceive Methode zu verspotten.
Jeder Vorschlag oder Beispiel würde sehr geschätzt werden.
Genau das, was ich gesucht habe. Danke! – Eleni
Wir könnten einfach eine 'Future.successful (mockResponse)' anstelle von 'Promise.successful (mockResponse) .future' verwenden. Ich würde auch lieber 'sendAndReceive' ein Argument für' ElevationClient' anstelle von override machen. Dann würden wir für unseren "sendAndReceive" eine falsche 'Funktion2 [HttpRequest, Future [HttpResponse]]' übergeben. – Alden