У меня есть родительский рабочий процесс (ParentWorkflow), вызывающий дочерний рабочий процесс (ChildWorkflow), и я пытаюсь проверить вызов.
Родительский код выглядит примерно так:
public class ParentWorkflow {
private final ChildWorkflowClientFactory childWorkflowClientFactory =
new ChildWorkflowClientFactoryImpl();
public void runWorkflow() {
new TryCatch() {
@Override
protected void doTry() throws Throwable {
Promise<Void> workflowFinished = childWorkflowClient.childWorkflow(x);
...
}
...
}
}
Я хочу смоделировать вызов childWorkflowClient.childWorkflow(x)
, однако, когда я подключаю модульный тест, у меня, похоже, нет возможности внедрить клиентскую фабрику, код модульного теста выглядит так:
@Rule
public WorkflowTest workflowTest = new WorkflowTest();
@Mock
private Activities mockActivities;
private ParentWorkflowClientFactory workflowFactory
= new ParentWorkflowClientFactoryImpl();
@Before
public void setUp() throws Exception {
// set up mocks
initMocks(this);
workflowTest.addActivitiesImplementation(mockActivities);
workflowTest.addWorkflowImplementationType(ParentWorkflowImpl.class);
workflowTest.addWorkflowImplementationType(ChildWorkflowImpl.class);
Кажется, я не могу ничего передать в классы реализации рабочего процесса, есть ли другой способ высмеять дочерний рабочий процесс?