When integrating with Spring, business processes can be tested very easily (in scope 2, see Testing Scopes) using the standard Camunda testing facilities. The following example shows how a business process is tested in a typical Spring-based unit test:

    1. @RunWith(SpringJUnit4ClassRunner.class)
    2. @ContextConfiguration("classpath:org/camunda/bpm/engine/spring/test/junit4/springTypicalUsageTest-context.xml")
    3. public class MyBusinessProcessTest {
    4. @Autowired
    5. private RuntimeService runtimeService;
    6. @Autowired
    7. private TaskService taskService;
    8. @Autowired
    9. @Rule
    10. public ProcessEngineRule processEngineRule;
    11. @Test
    12. @Deployment
    13. public void simpleProcessTest() {
    14. runtimeService.startProcessInstanceByKey("simpleProcess");
    15. Task task = taskService.createTaskQuery().singleResult();
    16. assertEquals("My Task", task.getName());
    17. taskService.complete(task.getId());
    18. assertEquals(0, runtimeService.createProcessInstanceQuery().count());
    19. }
    20. }

    Note that for this to work, you need to define a ProcessEngineRule bean in the Spring configuration (which is injected by auto-wiring in the example above).

    1. <bean id="processEngineRule" class="org.camunda.bpm.engine.test.ProcessEngineRule">
    2. <property name="processEngine" ref="processEngine" />
    3. </bean>

    原文: https://docs.camunda.org/manual/7.9/user-guide/spring-framework-integration/testing/