gpt4 book ai didi

scala - Akka Scala TestKit 测试 PoisonPill 消息

转载 作者:行者123 更新时间:2023-11-28 19:56:37 33 4
gpt4 key购买 nike

鉴于我有一个注入(inject)了 child actor 的 Supervisor actor,我该如何向 child 发送 PoisonPill 消息并使用 TestKit 对其进行测试?

这是我的主管。

class Supervisor(child: ActorRef) extends Actor {

...
child ! "hello"
child ! PoisonPill
}

这是我的测试代码

val probe = TestProbe()
val supervisor = system.actorOf(Props(classOf[Supervisor], probe.ref))
probe.expectMsg("hello")
probe.expectMsg(PoisonPill)

问题是没有收到PoisonPill 消息。可能是因为探测被 PoisonPill 消息终止?

断言失败

java.lang.AssertionError: assertion failed: timeout (3 seconds) 
during expectMsg while waiting for PoisonPill

最佳答案

我觉得这个Testing Actor Systems应该回答你的问题:

从探测中观察其他参与者

TestProbe 可以为任何其他参与者的 DeathWatch 注册自己:

val probe = TestProbe()
probe watch target
target ! PoisonPill
probe.expectTerminated(target)

关于scala - Akka Scala TestKit 测试 PoisonPill 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35015850/

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