akka - 如何用虚拟时间测试 Akka Actor?

标签 akka akka-typed

我有少量参与者(用 Java 编写,使用 Akka 类型的 API),它们利用 TimerScheduler 来为自己安排消息。我想编写测试来检查它们的交互。

使用ActorTestKitrecommended in the documentation ,它可以使用普通计时器来执行它们,这意味着当 Actor 在 10 秒内向自己发送消息时,测试必须持续 10 秒。

为了加快测试速度,我想使用虚拟时间进行测试,测试中的调度程序实际上并不等待,而是提前虚拟时钟。不幸的是,ActorTestKit 似乎不支持这个概念。

是否有运行此类测试的既定模式?

最佳答案

ActorTestKit 包含 ManualTime(在 Java API 中:akka.actor.testkit.typed.javadsl.ManualTime),可让您提前按持续时间(例如在断言之间)的计时器。请参阅controlling the Scheduler in the ActorTestKit docs .

关于akka - 如何用虚拟时间测试 Akka Actor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67361615/

相关文章:

Akka 2.6 如何在 Akka Typed 中读取 `Dead Letters`?

scala - 与 pipeTo 等效的 Akka 类型是什么?

java - 在 Akka 类型的 Actor 中配置 Dispatcher

scala - 尝试从 akka 类型应用程序内部创建一个经典的 actor

android - Akka Remoting 是否仅支持单向连接?

scala - Scala/Akka 中的序列化

scala - 使用流程中的最新项目完成请求

akka - 在 akka-actor-typed 中,Behaviors.setup 和 Behaviors.receive 有什么区别?

json - Akka HTTP流JSON反序列化

scala - akka typed 中的询问模式示例