我熟悉这里定义的Akka测试方法:
http://doc.akka.io/docs/akka/snapshot/scala/testing.html
我理解如何使用TestKit,TestActorRef,TestProbe等。我也理解我的核心域逻辑应该从Akka中独立提取和测试。
我的问题是关于在Akka Persistence actor上进行TDD的策略,即PersistentActor和PersistentView。
我希望能够以合理的低开销,高效的方式测试以下类型的场景,即尽可能接近单元测试:
如果有人知道一个项目可以帮助我看到这一点,我将不胜感激。
我能想到的一种方法是使用测试PersistentView来验证PersitentActor是否完成了它的工作。看起来有点令人费解。
这不是测试Akka持久性框架本身,而是测试我的Actors已经正确设置以使用它并且行为符合预期。
答案 0 :(得分:0)
Ad.1 可重复使用的解决方案是某种具有事件总线发布功能的内存日记。通过这种方式,您可以创建一个测试探针,以便在事件总线上侦听已发布的事件并断言它们。
Ad.2 和 Ad.3 更多关于如果我的演员在恢复后正确回应,我有理由相信它处于正确的状态。这样,您不仅可以验证其内部字段是否已正确设置,还可以验证由于become
更改而接收方法是否已正确恢复。
可选地,检查状态明显具有一些消息类型,将玩家的状态返回给发件人。它可以通过在接收方法上使用特征和覆盖来使其成为通用的。