我正在为Akka演员编写单元测试,并希望验证日志条目;例如test xyz写信给错误类别。 (你知道,假设我通过!而不是?发送一个演员的消息。)
在演员中,我会写日志以查找错误或信息或调试等情况,具体取决于“接收”处理的消息的结果。
对于akka 1.2或1.3,我该怎么办呢?示例:向EventHandler添加一个新的侦听器?其他想法?
提前致谢, 托德
答案 0 :(得分:3)
John已经在他的答案中涵盖了基础知识(我将消息传递给testActor
而不是使用TestLatch,但这是一个品味问题)。我知道它不符合您的要求,但也许以下内容可以引诱您进入Akka 2.0?
EventFilter.error(message = "some message", occurrences = 1) intercept {
// do something which should trigger such a log message
}
这些设施来自akka-testkit,特别是akka.testkit.TestEventListener
和akka.testkit.EventFilter
。上面显示的代码将等待最多三秒钟(可在“akka.test.filter-leeway”中配置)以显示消息,并在没有发生时提供信息性错误消息。