【问题标题】:Insert events to get desired state before running behaviour tests在运行行为测试之前插入事件以获得所需的状态
【发布时间】:2020-08-19 14:30:11
【问题描述】:

我尝试在尝试执行某些命令之前插入事件。我想让我的行为处于为特定测试做好准备的状态,而无需重新运行所有命令,例如常规测试中的数据库设备。

我正在使用:

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,我坚持的那些事件就不会应用。

这是一个好方法吗?

【问题讨论】:

    标签: java testing akka akka-persistence


    【解决方案1】:

    问题是我在调用persistForRecovery 时将"1" 作为persistenceId 传递,这是错误的,persistenceId 是实体名称+ id 的组合,所以它看起来像"order|1"

    【讨论】:

      猜你喜欢
      • 2020-03-04
      • 2020-05-13
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      • 2016-08-21
      • 2021-09-08
      相关资源
      最近更新 更多