我正在为我的参与者编写一些测试用例,问题是有些测试失败了,我不知道它们为什么失败。
在正常情况下,我的代码运行良好(没有任何测试),但对于我的测试,我嘲笑twitter4j库的某些部分,这使它们在某种程度上变得复杂。
测试失败了,没有更多有用的信息。
有没有办法用akka testkit和scalatest记录收到的消息?
如果你想记录所有收到的消息,你必须做三件事:
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文档的"测试参与者系统"部分,特别是"追踪参与者调用"小节中阅读更多关于这方面的内容。