2012-03-09 4 views
3

私はAkkaアクターのユニットテストを書いており、ログエントリを確認したいと思っています。例えばtest xyzはエラーカテゴリに書きました。 (あなたは知っています、私は俳優に代わりに!を使ってメッセージを送ります)akka - 特定のログエントリをテストする

俳優では、処理されたメッセージの結果に応じてエラーや情報、デバッグなどのためにログに書きます「受信」する。

akka 1.2または1.3については、どうすればよいですか?例:EventHandlerに新しいリスナーを追加しますか?他のアイデア?事前に

おかげで、 トッド

答えて

3

ジョンはすでに彼の答えで取り上げ基礎を持っている(私の代わりにTestLatchを使用してのtestActorにパイプにメッセージをいただきたいが、それは好みの問題です)。私はそれがあなたの要件に合っていないことを知っていますが、おそらく次のことがあなたをAkka 2.0に誘導するでしょうか?

EventFilter.error(message = "some message", occurrences = 1) intercept { 
    // do something which should trigger such a log message 
} 

これらの施設は、具体的akka.testkit.TestEventListenerakka.testkit.EventFilter、アッカ・testkitから来ます。上記のコードは、メッセージが表示されるように最長3秒間( "akka.test.filter-leeway"で設定可能)待機し、それが起こらない場合は有益なエラーメッセージを表示します。

+7

私を捕まえた何か。 Akka 2.1では、これをconfig 'akka.event-handlers = [" akka.testkit.TestEventListener "]'で有効にします。 2.2では、これは 'akka.loggers = [" akka.testkit.TestEventListener "]'に変更されました。 [Docs](http://doc.akka.io/docs/akka/2.2-M3/scala/testing.html#Expecting_Log_Messages) – theon

関連する問題