acj*_*jay 4 akka akka-persistence akka-persistent-fsm
我正在开发一个基于Akka Persistent FSM的项目.特别是:
我想知道构建独立测试用例的最佳方法是什么?由于状态更改是持久的(这在文档中没有很好地解释,但可以在这里看到),确保我的持久性actor始终处于干净状态可能很棘手.是否有必要手动将重置为我的actor FSM协议?如果是这样,这似乎并不理想,因为它的新行为需要自己进行测试.
在测试中管理期刊本身的最佳方法是什么?有没有一种简单的方法可以配置使用不同的日志进行测试,而不必在演员设计本身中明确选择这个选项?文档的插件TCK部分提到手动删除整个日志文件.这对于测试插件本身似乎是合理的,但对于应用程序代码来说似乎是一种不必要的低级解决方案.也许我需要明确调用期刊的asyncDeleteMessagesTo进行测试拆除?这看起来仍然很低级,但也许它只是尚未构建到库中的基础架构.
单元测试持久性actor时,可以使用内存持久性插件,例如https://github.com/dnvriend/akka-persistence-inmemory
无需更改代码是必需的,你可以简单地使用不同application.conf的src/test/resources比src/main/resources.
为了单元测试之间的独立性,您可以使persistenceId注入到actor中.为每个测试创建一个具有不同持久性Id的actor的新实例.然后,即使先前测试的事件仍然存在于内存中,它们也不会影响后续测试.
如果使用Akka testkit,将在每次测试运行时创建一个新的actor系统,并且在系统关闭时运行结束时,内存日志的内容将被销毁,因此无需手动清理.
| 归档时间: |
|
| 查看次数: |
2151 次 |
| 最近记录: |