在 运行 行为测试之前插入事件以获得所需状态
Insert events to get desired state before running behaviour tests
我试图在尝试执行某些命令之前插入事件。我想让我的行为处于准备好进行特定测试的状态,而不需要重新运行所有命令,例如常规测试中的数据库装置。
我正在使用:
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
我坚持的那些事件就不会应用。
这是一个好方法吗?
问题是我在调用 persistForRecovery
时将 "1"
作为 persistenceId 传递了,这是错误的,persistenceId 是实体名称 + id 的组合,所以它看起来像 "order|1"
.
我试图在尝试执行某些命令之前插入事件。我想让我的行为处于准备好进行特定测试的状态,而不需要重新运行所有命令,例如常规测试中的数据库装置。
我正在使用:
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
我坚持的那些事件就不会应用。
这是一个好方法吗?
问题是我在调用 persistForRecovery
时将 "1"
作为 persistenceId 传递了,这是错误的,persistenceId 是实体名称 + id 的组合,所以它看起来像 "order|1"
.