如何在 Camunda 中测试事件监听器?

How to test Event Listeners in Camunda?

我在我的流程中使用了执行和任务侦听器。如何在 Camunda 中使用 Junit 对它们进行单元测试。

例如,您可以使用 Camunda Model API 并编写单元测试来测试您的执行侦听器。

单元测试可能如下所示:

  @Test
  public void testEndExecutionListenerIsCalledOnlyOnce() {

    BpmnModelInstance modelInstance = Bpmn.createExecutableProcess("process")
      .startEvent()
      .userTask()
      .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_END, TestingExecutionListener.class.getName())
      .endEvent()
      .done();

    testHelper.deploy(modelInstance);

    // given
    ProcessInstance procInst = runtimeService.startProcessInstanceByKey("process");
    TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(procInst.getId());

    //when task is completed
    taskService.complete(taskQuery.singleResult().getId());

    // then end listener is called
    // assert something for example a variable is set or something else
  }

有关更多示例,请参阅 Camunda 如何测试执行侦听器 ExecutionListenerTest.java.