アクター用にいくつかのテスト ケースをコーディングしようとしています。問題は、一部のテストが失敗することであり、なぜ失敗したのか手がかりが得られません。
通常のシナリオでは、私のコードは (テストなしで) 正常に動作していますが、私のテストでは、twitter4j ライブラリの一部をモックしているため、複雑になっています。
テストは失敗しており、それに関する有用な情報はありません。
受信したメッセージを akka testkit と scalatest でログに記録する方法はありますか?
受信したすべてのメッセージをログに記録できるようにするには、次の 3 つのことを行う必要があります。
1) (パッケージから)receiveを使用して、ロギングを有効にするアクターに関数をラップします。LoggingReceiveakka.event
2) akka.actor.debug.receiveconfig から設定をtrue
DEBUG3)ログ設定がレベルでメッセージを表示することを確認してください
したがって、アクターは次のようになります。
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 サブセクションを参照してください。