2017-04-04 2 views
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?

+0

Was möchten Sie testen? Nur Ihr Code des Ausführungshörers? Oder die Integration mit dem Camunda-Motor? – Zelldon

+0

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

Antwort

1

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.