2014-09-24 94 views
2

我測試代碼哪些流通過獲得一個多輸出流的TCP連接的消息:測試阿卡反應流

(IO(StreamTcp) ? StreamTcp.Connect(settings, address)) 
.mapTo[StreamTcp.OutgoingTcpConnection] 
.map(_.outputStream) 

在測試中,我與虛擬用戶替換所得Subscriber[ByteString],引發一些傳出消息,並聲稱已按預期到達。我使用下面的方法來產生虛擬用戶和流結果未來。 (到目前爲止,一切都很好)

def testSubscriber[T](settings: FlowMaterializer)(implicit ec: ExecutionContext): (Subscriber[T], Future[Seq[T]]) = { 
    var sent = Seq.empty[T] 
    val (subscriber, streamComplete) = 
    Duct[T].foreach(bs => sent = sent :+ bs)(settings) 
    (subscriber, streamComplete.map(_ => sent)) 
} 

我的問題是:是否有用於測試流輸出的預期值,類似於阿卡的TestActorRef一些東西規範的方法?如果沒有,是否有一些庫功能類似於上述功能?

回答