如何测试akka-streams接收器是否被调用?

问题描述

我有一个用例,其中我将一个接收器传递给某个演员-因此我也可以传递一个TestSink

当那个演员收到消息时,我使用以下消息将消息传递给该接收器

case class SomeActor[T,U](sink: Sink[U,NotUsed] {
  def behavior: Behavior[T] = Behavors.receive[T] { (ctx,msg) =>
    msg match {
      case MessageT =>
        ref = sink.runWith(ActorSource.actorRef[U](PartialFunction.empty,PartialFunction.empty,OverflowStrategy.fail)
        ref ! MessageU
        Behaviors.same
    }
  }
}

如何测试接收器已收到MessageU

解决方法

尝试使用akka-stream-testkit(https://doc.akka.io/docs/akka/current/stream/stream-testkit.html)。您的示例的测试代码(省略类型以保持其简洁):

data.push(y); 

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...