【问题标题】:Testing Akka Streams divertTo with streams testkit使用流 testkit 测试 Akka Streams
【发布时间】:2019-10-04 14:53:43
【问题描述】:

我有一个由多个流组成的图,每个流返回一个 Either 的一些错误或实际结果。该代码使用divertTo 将任何Lefts 发送到与happy-path 下游接收器不同的接收器。

我遇到的问题是,在使用 Akka Streams 测试套件时,我找不到探测 divertTo 调用中使用的接收器的方法。我可以很好地探测快乐路径接收器,但我真的需要找到一种方法来测试不太快乐的路径以证明我的流程正在工作。

有没有人在使用流测试套件之前做过这种事情?

【问题讨论】:

  • 请编辑您的问题以包含您已经尝试过的任何代码,然后Read This

标签: scala akka akka-stream akka-testkit


【解决方案1】:

我遇到的问题是......我找不到探测divertTo 调用中使用的接收器的方法......在使用流测试套件之前有人做过这种事情吗?

是的: https://github.com/akka/akka/blob/release-2.5/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphPartitionSpec.scala

根据上述规范:

"divertTo must send matching elements to the sink" in assertAllStagesStopped {
  val odd = TestSubscriber.probe[Int]()
  val even = TestSubscriber.probe[Int]()
  Source(1 to 2).divertTo(Sink.fromSubscriber(odd), _ % 2 != 0).to(Sink.fromSubscriber(even)).run()
  even.request(1)
  even.expectNoMessage(1.second)
  odd.request(1)
  odd.expectNext(1)
  even.expectNext(2)
  odd.expectComplete()
  even.expectComplete()
}

【讨论】:

  • 完美,谢谢。我应该从一开始就检查测试。
猜你喜欢
  • 2018-05-08
  • 2017-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-17
  • 2015-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多