我有一些代码使用 ActorPath 而不是 ActorRef 向演员发送消息
system.actorSelection("/user/myActor") ! "a message"
我需要确保这条消息确实被发送了。因此,我需要在测试中创建一个位于此 actor 路径中的 testProbe (或类似的东西),以便它接收这些消息。
val probe = TestProbe()
val system.actorOf(probe.ref, "myActor") // ??? I want to give my probe name and path
我想出了一个不优雅的解决方案。
我定义了一个名为“ForwardActor”的辅助演员
class ForwardActor(to: ActorRef) extends Actor {
def receive = {
case x => to.forward(x)
}
}
然后在我的测试用例中
val probe = TestProbe()
system.actorOf(Props(new ForwardActor(probe.ref)), "myActor")
probe.expectMsg(...)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)