我正试图为我的演员编写一些测试用例,问题是有些测试失败了,我不知道为什么他们失败了。在正常情况下,我的代码运行良好(没有任何测试),但对于我的测试,我模仿了twitter4j库的某些部分,这使它们变得复杂。测试失败,没有更多有用的信息。有没有办法用akka testkit和scalatest记录收到的消息?
2nbm6dog1#
如果您希望能够记录所有收到的消息,则必须执行以下三项操作:1.使用LoggingReceive(来自akka.event包)将receive函数 Package 在要启用日志记录的actor上。1.将配置中的akka.actor.debug.receive设置设置为true1.确保您的日志配置将显示DEBUG级别的消息所以你的演员可能看起来像这样:
LoggingReceive
akka.event
receive
akka.actor.debug.receive
true
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小节。
1条答案
按热度按时间2nbm6dog1#
如果您希望能够记录所有收到的消息,则必须执行以下三项操作:
1.使用
LoggingReceive
(来自akka.event
包)将receive
函数 Package 在要启用日志记录的actor上。1.将配置中的
akka.actor.debug.receive
设置设置为true
1.确保您的日志配置将显示
DEBUG
级别的消息所以你的演员可能看起来像这样:
如果您这样设置,您应该开始看到所有传入的消息都记录到测试中的actor的
DEBUG
级别。你可以在Akka教程的Testing Actor Systems部分阅读更多关于这方面的内容,特别是跟踪Actor Invocations小节。