Я выполняю модульное тестирование StateMachineWorkflow, и я создаю свои методы тестирования, нажимая на мой тестовый проект, и я делаю Add - UnitTest.В окне проекта я выбираю рабочий процесс, который я хочу протестировать, и все методы в нем.
Visual Studio сгенерировал папку Test Reference в моем Test Project с помощью средства доступа к рабочему процессу.Он также сгенерировал все TestMethod (), необходимые для тестирования.Все методы тестирования используют MyWorkflow_Accessor target = new MyWorkflow_Accessor ().Когда мне нужно вызвать функцию, я просто делаю что-то вроде target.SendEmail ().
Все работает нормально, за исключением одного: Я не могу использовать WorkflowInstanceId Workflow , когдакод достигает строки, которая использует это, он генерирует исключение в рабочем процессе: « Это недопустимая операция времени разработки. Операцию можно выполнять только во время выполнения. » Возможно ли внедрить код WorkflowID по коду?Есть ли обходной путь в этой ситуации?Я использую WorkflowInstanceId во многих функциях, и изменение кода рабочего процесса в соответствии с моим тестом не кажется хорошей идеей, поскольку я считаю, что проблема заключается в тесте, а не в рабочем процессе.