0
Ich habe Ausführung und Aufgabenlistener in meinem Prozess verwendet. Wie man sie mit Junit in Camunda testen kann.Wie Event-Listener in Camunda zu testen?
Ich habe Ausführung und Aufgabenlistener in meinem Prozess verwendet. Wie man sie mit Junit in Camunda testen kann.Wie Event-Listener in Camunda zu testen?
Sie könnten zum Beispiel die Camunda Model API verwenden und einen Komponententest schreiben, um Ihren Execution Listener zu testen.
Die Unit-Test wie folgt aussehen könnte:
@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
}
Weitere Beispiele sehen, wie Camunda die Ausführung Hörer in ExecutionListenerTest.java testet.
Was möchten Sie testen? Nur Ihr Code des Ausführungshörers? Oder die Integration mit dem Camunda-Motor? – Zelldon
Die Integration mit dem Motor. Ich teste die gesamte Prozessdefinition, ich habe einen Task-Listener, der eine Verbindung zu einer externen URL herstellt und die Antwort erhält. Entsprechend dieser Antwort läuft mein Prozess weiter. Hier kann ich die Antwort, die im TaskListener angezeigt wird, nicht vortäuschen. – Hemendra