使用akka testkit记录收到的消息

c7rzv4ha  于 2023-10-18  发布在  其他
关注(0)|答案(1)|浏览(123)

我正试图为我的演员编写一些测试用例,问题是有些测试失败了,我不知道为什么他们失败了。
在正常情况下,我的代码运行良好(没有任何测试),但对于我的测试,我模仿了twitter4j库的某些部分,这使它们变得复杂。
测试失败,没有更多有用的信息。
有没有办法用akka testkit和scalatest记录收到的消息?

2nbm6dog

2nbm6dog1#

如果您希望能够记录所有收到的消息,则必须执行以下三项操作:
1.使用LoggingReceive(来自akka.event包)将receive函数 Package 在要启用日志记录的actor上。
1.将配置中的akka.actor.debug.receive设置设置为true
1.确保您的日志配置将显示DEBUG级别的消息
所以你的演员可能看起来像这样:

import akka.actor._
import akka.event.LoggingReceive

class MyActor extends Actor{
  def receive = LoggingReceive{
    case msg => ...
  }
}

如果您这样设置,您应该开始看到所有传入的消息都记录到测试中的actor的DEBUG级别。你可以在Akka教程的Testing Actor Systems部分阅读更多关于这方面的内容,特别是跟踪Actor Invocations小节。

相关问题