2015-05-19 125 views
1

我讀過Akka提供的TestKit,TestActorRef和ImplicitSender。但我沒有找到一種方法來檢查某個演員是否收到了某條消息。如果接收者 - 演員確實是「發送者!Foo」,我認爲「expectMsg(Foo)」可以是有用的。 但我的應用程序是不同的:我有一個演員A向另一個演員B發送消息.B比B通過WebSocket發送消息給Java客戶端。當B收到回覆時,將轉發給參與者C. 如何檢查C是否收到該消息(可能在特定的超時時間內)?謝謝。玩 - Akka:演員測試

回答

1

沒有代碼很難給出一個具體的答案,但你可以創建一個TestProbe以代替演員C.

val actorCProbe = TestProbe() 

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

然後你可以使用所有標準測試套件預計在測試探針:

actorB ! testMsg 

actorCProbe.expectMsg(500 millis, "result") 
+0

這就是我需要的。謝謝。 –