【发布时间】:2016-10-27 09:58:33
【问题描述】:
我正在使用 Akka-persistance 编写一个模块,并且在单元测试中遇到了一个问题:所有事件都是在测试期间产生的,因此状态会发生变化。当我再次运行 hte 测试套件时,会重播事件,因此参与者不会以最初应该具有的初始状态开始。
粗略的解决方案是每次删除本地事件存储,或者每次更改persistenceId。两者都太粗糙了。
有没有办法将其合并到测试套件中?
【问题讨论】:
我正在使用 Akka-persistance 编写一个模块,并且在单元测试中遇到了一个问题:所有事件都是在测试期间产生的,因此状态会发生变化。当我再次运行 hte 测试套件时,会重播事件,因此参与者不会以最初应该具有的初始状态开始。
粗略的解决方案是每次删除本地事件存储,或者每次更改persistenceId。两者都太粗糙了。
有没有办法将其合并到测试套件中?
【问题讨论】:
在进行单元测试时,您应该使用内存中的事件存储。看看https://github.com/dnvriend/akka-persistence-inmemory。
使用内存中的事件存储,您可以在每次测试之前轻松擦除整个存储。请参阅Clearing Journal and Snapshot messages 部分了解如何完成此操作。您应该能够使其适应您选择的单元测试框架。
您还将看到测试设置时间的显着提升,并且您的事件存储将针对每次测试进行隔离和清理。
【讨论】: