我有少量参与者(用 Java 编写,使用 Akka 类型的 API),它们利用 TimerScheduler 来为自己安排消息。我想编写测试来检查它们的交互。
使用ActorTestKit
时recommended 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/