私はAkkaプロジェクトの単体テストを実装しています。 InvalidActorNameException
などを避けるために、あるユニットテスト内で作成されたすべてのアクターを、次のユニットテストが実行される前に停止させたいと思います。したがって、単体テストで作成された各アクタについては、最後に_system.stop(someActorRef)
と呼んでいます。ただし、アクターが実際に停止するまでには時間がかかりますが、残念ながら次のユニットテストは通常、前のテストで実行されたアクターが実際に終了する前に実行されます。 stop
メソッドで返されているFuture
も、awaitStop
というメソッドもありません。これを解決する方法はわかりません。現在、私は各ユニットテストの最後にThread.sleep(1000)
を呼び出し、すべてのアクターがそれまでに死んでいることを願っていますが、明らかに私はこのままではいられません。 :Dすべてのアクタを停止して終了する方法を教えてください。
私はどんなヒントもありがとう!あなたは、あなたのテストの終わりにこれを試みることができる
これは本当に面白そうだ、しかし、それはコンパイルされません: – lambdarookie
を '' ''メソッドの欠落している引数リストは、[ を終了したオブジェクトに適用されますエラー]適用されていないメソッドは、関数型が必要な場合にのみ関数に変換されます。 [エラー]この変換は、 'apply'ではなく' apply _'または 'apply(_)(_、_)'と書くことで明示的にすることができます。 [エラー] probe.expectMsg(Terminated(someActorRef)) '' ' – lambdarookie
私の回答を更新しました – kardapoltsev