在运行行为测试之前,插入事件以获取所需状态

问题描述

在尝试执行一些命令之前,我试图插入事件。我想让自己的行为处于准备进行特定测试的状态,而无需重新运行所有命令,例如常规测试中的数据库固定装置。

我正在使用:

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"

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...