我正在编写一个带有Akka-persistance的模块,并且在单元测试中遇到了一个问题:所有事件都是在测试期间获得的,因此状态发生了变化。当我再次运行hte测试套件时,事件会被重放,因此演员不会以它应该具有的初始状态开始。
原始解决方案是每次都删除本地事件存储,或者每次都更改persistenceId。两者都太粗糙了。
有没有办法将它合并到测试套件中?
答案 0 :(得分:2)
单元测试时应使用内存事件存储。看看https://github.com/dnvriend/akka-persistence-inmemory。
使用内存中的事件存储,您可以在每次测试之前轻松擦除整个商店。有关如何完成此操作,请参阅Clearing Journal and Snapshot messages部分。您应该能够将其调整为您选择的单元测试框架。
您还将看到测试设置时间的良好增长,并且您的事件存储将在每次测试时被隔离并清理。