Date post: | 23-Jan-2017 |
Category: |
Presentations & Public Speaking |
Upload: | malte-soerensen |
View: | 58 times |
Download: | 6 times |
TestenvonCMMNModellenohnePein
CMMNErweiterungvoncamunda-bpm-assert@holisticon
CaseManagement BusinessProcessManagement
AblaufergibtsichzurAusführungszeit
AblaufwirdzurDesignzeitfestgelegt
SchwachstrukturierteProzesse
StarkstrukturierteProzesse
Wissensarbeit RoutinearbeitBenutzerwirdunterstützt Benutzerwird
eingeschränkt... ...CMMNCaseManagementModelandNotation
BPMNBusinessProcessModelandNotation
Models
Callhierarchy
Scenarios
SelectedModel Startnew Savechanges
CamundaPlay CamundaTools
1. completeA->completeB2. completeA->startC->completeC->completeB3. completeA->startC->completeB->completeC4. startC->completeA->completeB->completeC5. startC->completeA->completeC->completeB6. startC->completeC->completeA->completeB
@Test@Deployment(resources={"our_little_case.cmmn"})publicvoidtaskA_isStarted_CamundaApi(){//GIVEN
//WHENanewcaseinstanceiscreatedCaseInstancecaseInstance=processEngine().getCaseService().createCaseInstanceByKey(OUR_LITTLE_CASE);
//THENthehumantask"TaskA"isstarted.CaseExecutioncaseExecution=processEngine().getCaseService().createCaseExecutionQuery().activityId(TASK_A).singleResult();assertThat(caseExecution.isActive()).isTrue();}
GedankenzurAPI//THENthehumantask"TaskA"isstarted.CaseExecutioncaseExecution=processEngine().getCaseService().createCaseExecutionQuery().activityId(TASK_A).singleResult();assertThat(caseExecution.isActive()).isTrue();
GedankenzuAssertionErrorsorg.junit.ComparisonFailure:Expected:trueActual:false
atsun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeMethod)atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)atorg.camunda.bpm.engine.test.assertions.examples.seacon.ExampleStep1CaseTest.taskCreateInvoiceIsActive_CamundaApi(ExampleStep1CaseTest.java:43)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)...
java.lang.AssertionError:ExpectedhumanTask{id='a033ba13-15e4-11e6-8bee-5ecd9de0cc24',activityId='HT_TASK_A'}tobeinstate'enabled',butfoundittobe'active'!
@Test@Deployment(resources={"our_little_case.cmmn"})publicvoidtaskA_isStarted(){//GIVEN
//WHENanewcaseinstanceiscreatedCaseInstancecaseInstance=caseService().createCaseInstanceByKey(OUR_LITTLE_CASE);
//THENthehumantask"TaskA"isstarted.assertThat(caseInstance).humanTask(TASK_A).isActive();}
@Test@Deployment(resources={"our_little_case.cmmn"})publicvoidtaskB_isNotStarted(){//GIVEN
//WHENanewcaseinstanceiscreatedCaseInstancecaseInstance=caseService().createCaseInstanceByKey(OUR_LITTLE_CASE);
//THENthehumantask"TaskB"isnotstarted.assertThat(caseInstance).humanTask(TASK_B).isAvailable();}
GivenanewcaseinstanceiscreatedWhenthehumantask"TaskA"iscompletedThenthehumantask"TaskB"isstarted.
Akzeptanztest3
@Test@Deployment(resources={"our_little_case.cmmn"})publicvoidtaskA_completed_taskB_isStarted(){//GIVENanewcaseinstanceiscreatedCaseInstancecaseInstance=caseService().createCaseInstanceByKey(OUR_LITTLE_CASE);
//WHENthehumantask"TaskA"iscompletedcomplete(caseExecution(TASK_A,caseInstance));
//THENthehumantask"TaskB"isstarted.assertThat(caseInstance).humanTask(TASK_B).isActive();}
GivenanewcaseinstanceiscreatedAndthehumantask"TaskA"iscompletedWhenthehumantask"TaskB"iscompletedThenthecaseinstanceiscompleted.
Akzeptanztest4
@Test@Deployment(resources={"our_little_case.cmmn"})publicvoidtaskA_completed_taskB_completed_caseInstance_completed(){//GIVENanewcaseinstanceiscreated//ANDthehumantask"TaskA"iscompletedCaseInstancecaseInstance=caseService().createCaseInstanceByKey(OUR_LITTLE_CASE);complete(caseExecution(TASK_A,caseInstance));
//WHENthehumantask"TaskB"iscompletedcomplete(caseExecution(TASK_B,caseInstance));
//THENthecaseinstanceiscompleted.assertThat(caseInstance).isCompleted();}
Zusammenfassung■ CaseManagementermöglichtsehrflexibleArbeitsabläufe
■ CMMNModellewerdensehrschnellkomplex■ Testsmüssenleichtverständlichsein■ BDDeignetsichauchfürCMMNTests
Abervorallem:■ AuchCasessindtrotzihrerKomplexitättestbar
https://github.com/camunda/camunda-bpm-assert/blob/cmmn_assertions/camunda-bpm-
assert/User_Guide_CMMN.md
<dependency><groupId>org.camunda.bpm.extension</groupId><artifactId>camunda-bpm-assert</artifactId><version>2.0-alpha1</version></dependency>
Machtmit!Schreibtunseinfachan!
[email protected]@[email protected]
https://github.com/camunda/camunda-bpm-assert