首页 文章

Akka持久性测试方法

提问于
浏览
1

我熟悉这里定义的Akka测试方法:

http://doc.akka.io/docs/akka/snapshot/scala/testing.html

我理解如何使用TestKit,TestActorRef,TestProbe等 . 我也理解我的核心域逻辑应该从Akka中提取和测试 .

我的问题是关于在Akka Persistence actor上进行TDD的策略,即PersistentActor和PersistentView .

我希望能够以合理的低开销,高效的方式测试以下类型的场景,即尽可能接近单元测试:

  • 持久性actor是否持有具有正确ID的事件?

  • 我的快照恢复是否正确恢复状态?

  • 我的视图是否读取了正确的事件?

如果有人知道一个项目可以帮助我看到这一点,我将不胜感激 .

我能想到的一种方法是使用测试PersistentView,它可用于验证PersitentActor是否完成了它的工作 . 虽然看起来有点令人费解 .

这不是测试Akka持久性框架本身,而是测试我的Actors已经正确设置使用它并且行为是预期的 .

1 回答

  • 0

    Ad.1 可重复使用的解决方案是某种具有事件总线发布功能的内存日志 . 通过这种方式,您可以创建一个测试探针,以便在事件总线上侦听已发布的事件并断言它们 .

    Ad.2Ad.3 更多关于如果我的演员在恢复后正确响应,我有理由相信它处于正确的状态 . 这样,您不仅可以验证是否正确设置了内部字段,还可以验证由于 become 更改而接收方法是否已正确恢复 .

    可选地,明确地检查状态具有一些将actor的状态返回给发送者的消息类型 . 它可以通过在接收方法上使用特征和覆盖来使其成为通用的 .

相关问题