1

我读过 Akka 提供的 TestKit、TestActorRef 和 ImplicitSender。但是我没有找到一种方法来检查某个演员是否收到了某个消息。我认为如果接收者执行“发送者!Foo”,“expectMsg(Foo)”会很有用。但我的应用程序不同:我有一个演员 A 向另一个演员 B 发送消息。比 B 通过 WebSocket 向 Java 客户端发送消息。当 B 收到回复时,它会转发给参与者 C。如何检查 C 是否收到了该消息(可能在某个超时内)?谢谢。

4

1 回答 1

1

没有代码很难给出具体的答案,但你可以创建一个TestProbe来代替演员 C。

val actorCProbe = TestProbe()

val actorB = system.actorOf(Props(classOf[ActorB], actorCProbe.ref))

然后,您可以在测试探针上使用所有标准测试套件:

actorB ! testMsg

actorCProbe.expectMsg(500 millis, "result")
于 2015-05-19T16:22:41.920 回答