【问题标题】:Testing Akka Reactive Streams测试 Akka 反应式流
【发布时间】:2014-09-24 21:26:51
【问题描述】:

我正在测试通过以下方式获得的传出流 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 ))
}

我的问题是:是否有一些规范的方法来测试流输出预期值,类似于 Akka 的TestActorRef?如果没有,是否有一些类似于上述函数的库函数?

【问题讨论】:

    标签: scala akka akka-stream reactive-streams


    【解决方案1】:

    使用 akka-streams-testkit 可以测试流。
    在这里阅读:http://doc.akka.io/docs/akka/current/scala/stream/stream-testkit.html

    【讨论】:

      猜你喜欢
      • 2017-07-16
      • 2020-04-17
      • 2019-09-29
      • 1970-01-01
      • 1970-01-01
      • 2019-01-22
      • 2017-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多