使用akka testkit记录收到的消息

时间:2014-09-01 17:52:36

标签: akka scalatest testkit

我正在尝试为我的演员编写一些测试用例,问题是某些测试失败了,我无法弄清楚他们为什么会失败。

在正常情况下,我的代码工作正常(没有任何测试),但对于我的测试,我正在嘲笑twitter4j库的某些部分,这使得它们有些复杂。

测试失败,没有更多有用的信息。

有没有办法用akka testkit和scalatest记录收到的消息?

1 个答案:

答案 0 :(得分:0)

如果您希望能够记录所有收到的消息,您必须做三件事:

1)使用receive(来自LoggingReceive包)将您的akka.event函数包装到要启用日志记录的actor上。

2)将akka.actor.debug.receive设置从配置设置为true

3)确保您的日志配置将显示DEBUG级别的消息

所以你的演员可能看起来像这样:

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小节中阅读更多相关内容。