如何测试不向发件人发送任何内容的演员

How to test actor which not send anything to sender

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

我想测试当 ParserActor 收到某些特定的 RawMessage 时,我的 ProcessingActor 是否发送正确的 DataMessage。可以使用 Akka.TestKit 吗?

在进一步讨论之前,我鼓励您先看一下 Akka.Streams 以评估您的流处理是否无法通过它变得更容易和更快。

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