scala - 测试 Akka react 流

标签 scala akka akka-stream reactive-streams

我正在测试通过以下方式获得的传出流 TCP 连接传输消息的代码:

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

在我的测试中,我将生成的 Subscriber[ByteString] 替换为虚拟订阅者,触发一些传出消息,并断言消息已按预期到达。我使用下面的方法来生成虚拟订阅者和流结果 future 。 (到目前为止,一切顺利)

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?如果没有,是否有类似上述函数的库函数?

最佳答案

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

关于scala - 测试 Akka react 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26026814/

相关文章:

scala - 谁能解释一下这段scala代码的含义

scala - 从 Scala 中的数组中删除方括号 []

scala - Akka:测试与 IO 管理器的交互

scala - 无法使用 Flink 1.5 集群提交作业

scala - 如何使用封装的源和接收器测试 akka 流闭合形状可运行图

scalaz.Equal 用于路径依赖类型

scala - 如何在akka-http中有条件地添加路由路径?

Akka 流 - 将接收器连接到源?

scala - Akka Stream 从 Sink 返回对象

scala 类型标签和类型别名