【问题标题】:akka - testing a particular log entryakka - 测试特定的日志条目
【发布时间】:2012-03-09 22:23:58
【问题描述】:

我正在为 Akka Actor 编写单元测试,并希望验证日志条目;例如测试 xyz 写入错误类别。 (你知道,假设我通过 ! 而不是 ? 向演员发送消息。)

在actor中,我将根据“receive”处理的消息结果写入日志以获取错误或信息或调试等情况。

对于 akka 1.2 或 1.3,我应该如何处理?示例:向 EventHandler 添加一个新的侦听器?其他想法?

提前致谢, 托德

【问题讨论】:

    标签: scala akka


    【解决方案1】:

    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.TestEventListenerakka.testkit.EventFilter。上面显示的代码将等待最多 3 秒(可在“akka.test.filter-leeway”中配置)以等待消息出现,如果没有出现,则会给出信息性错误消息。

    【讨论】:

    • 某件事让我大吃一惊。在 Akka 2.1 中,您可以使用配置 akka.event-handlers = ["akka.testkit.TestEventListener"] 启用此功能。在 2.2 中,这已更改为 akka.loggers = ["akka.testkit.TestEventListener"]Docs
    猜你喜欢
    • 2021-09-30
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多