如何解决在运行行为测试之前,插入事件以获取所需状态
在尝试执行一些命令之前,我试图插入事件。我想让自己的行为处于准备进行特定测试的状态,而无需重新运行所有命令,例如常规测试中的数据库固定装置。
我正在使用:
akka.persistence.testkit.javadsl.EventSourcedBehaviorTestKit`
akka.actor.testkit.typed.javadsl.ActorTestKit`
akka.persistence.testkit.javadsl.PersistenceTestKit
我创建了测试套件:
static final ActorTestKit testKit = ActorTestKit.create(EventSourcedBehaviorTestKit.config());
static final EventSourcedBehaviorTestKit<Command,Event,State> eventSourcedTestKit = EventSourcedBehaviorTestKit.create(
testKit.system(),MyPersistentBehaviour.create(),EventSourcedBehaviorTestKit.disabledSerializationSettings()
);
然后我尝试做:
eventSourcedTestKit.persistenceTestKit().persistForRecovery(
"1",//List of my akka events
);
eventSourcedTestKit.restart();
但是一旦我尝试runCommand
,我坚持的那些事件就不会应用。
这甚至是个好方法吗?
解决方法
问题在于,我在调用"1"
时将persistForRecovery
作为persistenceId传递了,这是错误的,persistenceId是实体名称+ id的组合,因此看起来像"order|1"
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。