我已经读过Akka提供的TestKit,TestActorRef和ImplicitSender。但我没有找到一种方法来检查某位演员是否收到了某条消息。我认为" expectMsg(Foo)"如果接收者 - 演员做了发送者,那么会很有用! FOO&#34 ;. 但我的应用程序是不同的:我有一个演员A,它向另一个演员B发送消息。比B通过WebSocket向Java客户端发送消息。当B收到回复时,会转发给演员C. 如何检查C是否收到该消息(可能在某个超时内)?感谢。
答案 0 :(得分:1)
如果没有代码,很难给出具体的答案,但你可以创建一个TestProbe
代表演员C。
val actorCProbe = TestProbe()
val actorB = system.actorOf(Props(classOf[ActorB], actorCProbe.ref))
然后您可以使用测试探针上的所有标准测试工具包:
actorB ! testMsg
actorCProbe.expectMsg(500 millis, "result")