使用 streams testkit 测试 Akka Streams divertTo

Testing Akka Streams divertTo with streams testkit

我有一个由多个流程组成的图表,每个流程 returns 一个 Either 一些错误或实际结果。该代码使用 divertTo 以便将任何 Lefts 发送到与快乐路径下游接收器不同的接收器。

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

有人在使用 streams testkit 之前做过这类事情吗?

The problem I am having is that...I can't find a way to probe the sink used in the divertTo call....Has anybody done this type of thing before using the streams testkit?

是: 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()
}