2017-05-03 62 views
3

我想測試一些Akka流功能,如conflate。爲此,我需要在簡單的單元測試中構建一個不受背壓影響的源。天真的嘗試,如如何創建不受背壓影響的來源

Source.tick(1.milli, 1.milli, "tick").map(_ => Random.nextDouble()) 

由於背壓不起作用。 OTOH通過HTTP可能是矯枉過正。

如何創建一個簡單的Source對於不受背壓影響的單元測試?

回答

2

您可以使用Source.actorRef這是 - 在設計上 - 不支持背壓。看下面的例子:

val actorRef: ActorRef = Source.actorRef(0, OverflowStrategy.dropNew) 
     .map(_ => Random.nextDouble()) 
     .to(yourSink).run() 

    system.scheduler.schedule(1.milli, 1.milli, actorRef, "tick")(system.dispatcher) 

的BUFFERSIZE參數和溢出策略已隨機選擇這裏,你需要將它們調整到您的測試需求。

有關Source.actorRef的更多信息可以在docs中找到。

+0

啊,非常好!謝謝你,斯特凡諾。 – kostja

相關問題