测试时清除 Akka-persistance 中的来源事件

Purge sourced events in Akka-persistance, when testing

我正在编写一个带有 Akka-persistance 的模块,并且 运行 在单元测试中遇到了一个问题:所有事件都是在测试期间产生的,因此状态会发生变化。当我再次 运行 hte 测试套件时,事件会被重播,因此 actor 不会以它最初应该具有的初始状态开始。

粗略的解决办法就是每次都删除本地的event-store,或者每次都改persistenceId。都太简陋了

有没有办法将其合并到测试套件中?

您应该在单元测试时使用内存中的事件存储。看看https://github.com/dnvriend/akka-persistence-inmemory.

使用内存中的事件存储,您可以在每次测试前轻松擦除整个存储。请参阅 Clearing Journal and Snapshot messages 部分了解这是如何完成的。您应该能够使它适应您选择的单元测试框架。

您还将看到测试设置时间的显着提升,并且您的事件存储将针对每个测试进行隔离和清理。