在akka中测试EventSourcedBehavior的停止行为

zbq4xfa0  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(154)

我有一个EventSourcedBehavior,它最终会收到一条消息,导致最后一个事件,然后自行停止。实现这一点不是问题,但当我想测试它时,我收到了一条DeadLetter消息,因为EventSourcedBehaviorTestKit在runCommand之后发送了一条“GetState”消息。问题是:该行为自行停止,无法再响应。
我已经查看了EventSourcedBehaviorTestKit的api文档,但是没有找到一个合适的方法来实现我的目标。
下面是一个简单的测试,它展示了我的问题:
第一个
如何设置测试,以便运行此命令,然后预期行为停止?

7uzetpgm

7uzetpgm1#

无法使用EventSourcedBehaviorTestKit测试停止。
您可以利用PersistentTestKit的内存中日志和快照存储,并使用ActorTestKit进行测试。
或者,从Akka 2.7.0开始,可以将EventSourcedBehavior转换为一个不持久化但在探测器上公开事件和快照的EventSourcedBehavior(而不是EventSourcedBehaviorTestkit所做的秘密GetState命令),并可以使用BehaviorTestkitActorTestkit进行测试(尽管人体工程学倾向于前者)。

相关问题