【问题标题】:Logging recieved message with akka testkit使用 akka testkit 记录收到的消息
【发布时间】:2014-09-02 20:24:10
【问题描述】:

我正在尝试为我的演员编写一些测试用例,问题是一些测试失败了,我不知道为什么他们失败了。

在正常情况下,我的代码运行良好(没有任何测试),但对于我的测试,我正在模拟 twitter4j 库的某些部分,这使得它们变得有些复杂。

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

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

【问题讨论】:

    标签: akka scalatest testkit


    【解决方案1】:

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

    1) 使用LoggingReceive(来自akka.event 包)将receive 函数包装在要启用日志记录的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 小节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-14
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      • 2016-12-14
      • 2018-05-25
      • 2013-11-29
      • 2017-10-13
      相关资源
      最近更新 更多