gpt4 book ai didi

scala - 记录所有发送到Akka TestKit TestProbe的消息

转载 作者:行者123 更新时间:2023-12-04 04:57:31 28 4
gpt4 key购买 nike

我正在尝试记录TestKit TestProbe收到的所有消息,事实证明这有些困难。我知道文档中的Actor Logging部分,其中说应该将debug.receive选项与LogginReceive块结合使用。但是,当我无法控制参与者的实现时,这将无法正常工作。

我唯一的想法是将akka.testkit.TestActor子类化以使用LoggingReceive,然后再将TestKit子类化以使其创建我的TestActor子类的实例,但这没有用,因为大多数功能是akka命名空间专用的(并且出于充分的理由,我认为)。

最佳答案

抱歉,刚开始您的问题有点错误,所以这是我的方法。

创建一个包装器actor,记录消息:

class LoggingActor(fac: => Actor) extends Actor {

val underlying = context.system.actorOf(Props(fac))

def receive = {
LoggingReceive {
case x ⇒ underlying.tell(x, sender)
}
}
}

然后只用包裹在 TestActorRef中的actor来创建 LoggingActor:
  val echo = TestActorRef(new LoggingActor(new FooActor))

echo ! "hello world"

关于scala - 记录所有发送到Akka TestKit TestProbe的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13420809/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com