Ho un semplice client spruzzo:Come deridere risposta spray-cliente
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()
}
codice completo può essere trovato here.
Voglio prendere in giro la risposta del server per testare la logica nei casi Success
e Failure
. L'unica informazione rilevante che ho trovato è stata here ma non sono stato in grado di utilizzare il modello di torta per deridere il metodo sendReceive.
Qualsiasi suggerimento o esempio sarebbe molto apprezzato.
Esattamente quello che stavo cercando. Grazie! – Eleni
Potremmo semplicemente usare 'Future.successful (mockResponse)' invece di 'Promise.successful (mockResponse) .future'. Vorrei anche rendere 'sendAndReceive' un argomento a' ElevationClient' invece di usare override. Poi passeremmo in una simulazione 'Function2 [HttpRequest, Future [HttpResponse]]' per il nostro 'sendAndReceive'. – Alden