【问题标题】:How to test actor which not send anything to sender如何测试不向发件人发送任何内容的演员
【发布时间】:2016-11-18 09:39:46
【问题描述】:

我有以下消息流 ConnectionActor -(RawMessage)-> ParserActor -(ParsedMessage)-> ProcessingActor -(DataMessage)-> DataStoreActor。

我想测试我的 ProcessingActor 在 ParserActor 收到一些特定的 RawMessage 时是否发送了正确的 DataMessage。是否可以使用 Akka.TestKit 来做到这一点?

【问题讨论】:

    标签: unit-testing akka.net


    【解决方案1】:

    在继续之前,我建议您先查看Akka.Streams 以评估您的流处理是否无法通过它变得更容易和更快。

    鉴于此,您可以简单地表达流程中两个参与者之间的链接,即 IActorRef 传递给参与者的构造函数,例如 public ParserActor(IActorRef processingActor)。这样,您可以将流程的组件分开,并使用标准测试探针或参与者模拟它们之间的连接。

    【讨论】:

    • 谢谢你的回答,我去看看Akka.Streams。实际上,我使用的是 DI,所以将 actor ref 放入构造函数并不容易。我决定通过发送带有 DataStoreActor 参考的配置消息来为 ProcessingActor 设置 DataStoreActor 参考。
    猜你喜欢
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多