【问题标题】:VirtualTimeScheduler for testing Akka.NET?用于测试 Akka.NET 的 VirtualTimeScheduler?
【发布时间】:2018-03-16 12:03:56
【问题描述】:
当我们测试 Rx.NET 代码时,我们可以使用实现 VirtualTimeScheduler 的 TestScheduler,它允许我们创建系统中发生的事件的虚拟时间线 (CreateColdObservable),然后在某个时间点使用测试系统的状态AdvanceTo 等方法。
我想知道 Akka.Net 中是否有类似的东西来测试系统,使用像 Rx.Net 中的一些虚拟时间线之王?
【问题讨论】:
标签:
unit-testing
system.reactive
akka.net
【解决方案1】:
在使用 Akka.TestKit 测试您的 Actor 时,您的 Actor 系统配置为使用 TestScheduler,它具有允许及时前进的 Advance/AdvanceTo 方法。它直接受到 Rx.NET 中的 VirtualTimeScheduler 的启发。
请记住,TestScheduler 的使用有限:AFAIK 仅用于使用 Context.System.Scheduler.ScheduleTellxxx 方法调度未来事件的上下文。它不会影响 Actor 系统内部发生的其他基于时间的操作。