【发布时间】:2015-06-16 08:24:24
【问题描述】:
我熟悉这里定义的 Akka 测试方法:
http://doc.akka.io/docs/akka/snapshot/scala/testing.html
我了解如何使用 TestKit、TestActorRef、TestProbe 等。我也了解我的核心域逻辑应该与 Akka 隔离提取和测试。
我的问题是关于在 Akka Persistence Actor 上执行 TDD 的策略,即 PersistentActor 和 PersistentView。
我希望能够以合理的低开销、高效的方式测试以下类型的场景,即尽可能接近单元测试:
- 持久性参与者是否以正确的 ID 持久化事件?
- 我的快照恢复是否正确恢复状态?
- 我的视图是否读取了正确的事件?
如果有人知道可以帮助我看到这一点的项目,我将不胜感激。
我能想到的一种方法是有一个测试 PersistentView 可用于验证 PersitentActor 是否完成了它的工作。不过好像有点绕。
这不是测试 Akka 持久性框架本身,而是测试我的 Actors 是否已正确设置以使用它并且行为是否符合预期。
【问题讨论】:
-
为了检查事件是否持久化,我使用了内存日志和测试持久化视图来验证事件是否持久化。为了测试快照恢复,我在发送命令后简单地销毁了actor,然后重新启动 - 然后恢复了检查状态。使用 akka testkit 作为测试框架。
标签: akka akka-persistence