【发布时间】:2015-04-25 02:11:12
【问题描述】:
我已经用org.camunda.bpm.engine.test.mock.MockExpressionManager 配置了Camunda 引擎。
乍一看,它按预期工作:当我这样做时
Mocks.register("myDelegate", myDelegateMock),bpmn 进程调用我的模拟,但不是真正的委托。
但是当有一个任务被某个定时器边界事件调用时,模拟被忽略,真正的委托被调用。
我查看了代码,发现模拟存储在 ThreadLocal 中。如果任务是由定时器调用的,则执行发生在不同的线程中。这看起来像是这种行为的根本原因。如果任务被标记为异步,可能模拟也将不起作用。
我也尝试过扩展 https://github.com/camunda/camunda-bpm-mockito 但看起来在内部它使用相同的 Mocks.register,并且对我也不起作用。
可能还有其他一些模拟委托的可能性,适用于计时器的情况?
【问题讨论】:
-
你问过 Camunda 用户组吗?通常他们会很快回答 (groups.google.com/forum/#!forum/camunda-bpm-users)
-
你说得对,camunda-bpm-mockito 只是在 Mocks.register 之上添加了便利方法。我真的不知道如何重现您的问题。您能否提供一些(测试)代码和 bpmn sn-p (camunda.org/share)?
-
我在这里找到了类似的问题讨论groups.google.com/forum/#!searchin/camunda-bpm-users/… 还有一个github项目的链接和例子。
标签: java junit mockito camunda