Play - Akka:演员测试

时间:2015-05-19 16:18:39

标签: scala playframework akka actor akka-testkit

我已经读过Akka提供的TestKit,TestActorRef和ImplicitSender。但我没有找到一种方法来检查某位演员是否收到了某条消息。我认为" expectMsg(Foo)"如果接收者 - 演员做了发送者,那么会很有用! FOO&#34 ;. 但我的应用程序是不同的:我有一个演员A,它向另一个演员B发送消息。比B通过WebSocket向Java客户端发送消息。当B收到回复时,会转发给演员C. 如何检查C是否收到该消息(可能在某个超时内)?感谢。

1 个答案:

答案 0 :(得分:1)

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

val actorCProbe = TestProbe()

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

然后您可以使用测试探针上的所有标准测试工具包:

actorB ! testMsg

actorCProbe.expectMsg(500 millis, "result")