Действия модульного тестирования, помеченные как @ManualActivityCompletion
Я работал над созданием модульных тестов, которые запускают локальные версии рабочего процесса. Я следовал этому руководству для начальной настройки. С этой настройкой я смог успешно выполнить и протестировать рабочий процесс. Проблема возникает, когда я пытаюсь выполнить модульное тестирование реализации действия, помеченной как @ManualActivityCompletion. Похоже, что операции ручного завершения обычно возвращаются в рамках модульных тестов (не ожидая вызова завершения / сбоя).
Я задаюсь вопросом, возможно ли вообще провести модульное тестирование действий по ручному завершению таким способом. Я предполагаю, что это не так, так как я не видел упоминаний об этом, и я не вижу способа создать тестовый ManualActivityCompletionClient. В этом случае мне интересно, есть ли у кого-нибудь какие-либо предложения о том, как выполнить модульное тестирование операций ручного завершения в локальном рабочем процессе. Я попытался создать обходные пути для этого, используя разные потоки и точки синхронизации, но полезно проверить фактическое поведение завершения / сбоя действий (исключения, которые выбрасываются и т. Д.). Возможно, стоит упомянуть, что мне удалось написать успешные модульные тесты интеграции для операций ручного завершения.
Любая помощь с благодарностью.
1 ответ
Чтобы протестировать логику рабочего процесса, которая вызывает действие, помеченное @ManualActivityCompletion, просто смоделируйте интерфейс этой активности на стороне клиента. Поскольку клиент выполняется в асинхронном контексте рабочего процесса, вы можете использовать Promises и WorkflowClock для реализации ваших тестов.