2017-04-04 9 views
0

私は自分のプロセスでExecution and Task Listenerを使用しました。 CamundaのJunitを使ってそれらをユニットテストする方法。Camundaのイベントリスナーをテストするには?

+0

何をテストしますか?実行リスナーのコードのみ?またはカムンダエンジンとの統合? – Zelldon

+0

エンジンとの統合。私はプロセス定義全体をテストしています。外部URLに接続して応答を取得するタスクリスナーがあり、その応答に従ってプロセスフローが進行します。ここで私はTaskListenerで提示されたその応答を模擬することができません。 – Hemendra

答えて

1

たとえば、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で実行リスナーをテストする方法を参照してください。

関連する問題