我有一個akka-http路由,它返回一個包含無限實體流的Source
。我如何測試使用路由測試工具包?我想檢查流的前n個元素,但是我已經看了一下testkit代碼,看起來好像沒有直接的方式來訪問響應中的Source
。它總是被轉換爲ByteString
的序列,在我的情況下,這只是導致TimeoutException
,因爲流不會終止。測試完成無限流的akka-http路由
作爲參考,這個問題可以用路線轉載看起來像這樣:
case class Bar(wibble: String, wobble: String)
path("stream") {
get {
complete {
import JsonSupport._
implicit val streamingSupport = EntityStreamingSupport.json()
Source.unfold(1) { i =>
Thread.sleep(10)
Some((i + 1, Bar(i.toString, (i + 1).toString)))
}
}
}
}
什麼是'JsonSupport'? –
'JsonSupport'定義爲: 對象JsonSupport延伸SprayJsonSupport與DefaultJsonProtocol { 隱VAL barFormat = jsonFormat2(BAR) } –
http://doc.akka.io/docs/akka-http/current/scala/ http/routing-dsl/source-streaming-support.html ?? –