阿卡持久性测试方法(Akka persistence testing approaches)

2019-10-23 09:40发布

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

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

我知道如何使用TestKit,TestActorRef,TestProbe等我也明白,我的核心领域逻辑应该提取和阿卡隔离测试。

我的问题是关于在阿卡持久的演员即PersistentActor和PersistentView做TDD的策略。

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

  1. 并持续坚持的演员用正确的ID的事件?
  2. 请问我的快照恢复恢复状态正常吗?
  3. 请问我的观点读取正确的事件?

如果有人项目,可以帮助我在行动中看到的人都知道,我将不胜感激。

一种方法我能想到的是有一个测试PersistentView可用于验证PersitentActor做其工作。 似乎有点令人费解,虽然。

这不是测试阿卡持久化框架本身,而是来测试我的演员已经正确安装使用它,并如预期的行为。

Answer 1:

对于Ad.1可重复使用的解决方案将是某种形式的内存与杂志事件总线发布功能的。 这样,您可以创建一个测试探头事件总线上监听发布的事件,并断言他们。

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

可选检查状态明显有一个返回演员的状态恢复到发件人一些消息类型。 它可以通过使用接收方法性状和覆盖进行仿制。



文章来源: Akka persistence testing approaches