After looking at your tutorial, I tried to test my processes in similar way, but in Java. However, I am unable to mock the service task. My test runs the actual service task instead of the mock. I have also built TestConfiguration for MockExpressionManager, but still does not work.
Test
@RunWith(SpringRunner.class)
@SpringBootTest
public class PortfolioProcessTest {
@Autowired
private RuntimeService runtimeService;
@Test
public void startPortfolioProcess(){
prepareEnv();
this.runtimeService.startProcessInstanceByKey("portfolioReconfigurationProcess",getProcessStartVariable());
}
public void prepareEnv(){
MailService mockMailService = mock(MailService.class);
when(mockMailService.sendMail()).thenReturn("Sending Mail");
Mocks.register("rejectMailPms",new RejectMailPms(mockMailService));
}
ServiceTask
@Service
public class RejectMailPms {
MailService mailService;
@Autowired
public RejectMailPms(MailService mailService){
this.mailService = mailService;
}
public void sendMail(){
System.out.println(mailService.sendMail());
}
}
MailService
@Service
public class MailService {
public String sendMail(){
return null;
}
}
@Configuration
public class TestConfiguration {
@Bean
public EngineConfigurationConfigurer<SpringProcessEngineConfiguration> flowableTestSpringProcessEngineConfig(){
return new MyConfigurer();
}
}
public class MyConfigurer implements EngineConfigurationConfigurer {
public void configure(SpringProcessEngineConfiguration processEngineConfiguration) {
// advanced configuration
processEngineConfiguration.setExpressionManager(new MockExpressionManager());
}
}