1

Akka が提供する TestKit、TestActorRef、ImplicitSender について読みました。しかし、特定のアクターが特定のメッセージを受信したかどうかを確認する方法は見つかりませんでした。"expectMsg(Foo)" は、受信側アクターが "sender ! Foo" を実行する場合に役立つと思います。しかし、私のアプリケーションは異なります。別のアクター B にメッセージを送信するアクター A があります。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 に答える