Действия модульного тестирования, помеченные как @ManualActivityCompletion

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

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

Любая помощь с благодарностью.

1 ответ

Чтобы протестировать логику рабочего процесса, которая вызывает действие, помеченное @ManualActivityCompletion, просто смоделируйте интерфейс этой активности на стороне клиента. Поскольку клиент выполняется в асинхронном контексте рабочего процесса, вы можете использовать Promises и WorkflowClock для реализации ваших тестов.

Другие вопросы по тегам