アクター用にいくつかのテスト ケースをコーディングしようとしています。問題は、一部のテストが失敗することであり、なぜ失敗したのか手がかりが得られません。
通常のシナリオでは、私のコードは (テストなしで) 正常に動作していますが、私のテストでは、twitter4j ライブラリの一部をモックしているため、複雑になっています。
テストは失敗しており、それに関する有用な情報はありません。
受信したメッセージを akka testkit と scalatest でログに記録する方法はありますか?
受信したすべてのメッセージをログに記録できるようにするには、次の 3 つのことを行う必要があります。
1) (パッケージから)receive
を使用して、ロギングを有効にするアクターに関数をラップします。LoggingReceive
akka.event
2) akka.actor.debug.receive
config から設定をtrue
DEBUG
3)ログ設定がレベルでメッセージを表示することを確認してください
したがって、アクターは次のようになります。
import akka.actor._
import akka.event.LoggingReceive
class MyActor extends Actor{
def receive = LoggingReceive{
case msg => ...
}
}
DEBUG
このように設定すると、テスト中のアクターのレベルに記録されたすべての着信メッセージが表示されるようになります。詳細については、Akka Docs のTesting Actor Systemsセクション、特に Tracing Actor Invocations サブセクションを参照してください。