Исключение UnitTest WorkflowInstanceID - PullRequest
1 голос
/ 02 ноября 2011

Я выполняю модульное тестирование StateMachineWorkflow, и я создаю свои методы тестирования, нажимая на мой тестовый проект, и я делаю Add - UnitTest.В окне проекта я выбираю рабочий процесс, который я хочу протестировать, и все методы в нем.

Visual Studio сгенерировал папку Test Reference в моем Test Project с помощью средства доступа к рабочему процессу.Он также сгенерировал все TestMethod (), необходимые для тестирования.Все методы тестирования используют MyWorkflow_Accessor target = new MyWorkflow_Accessor ().Когда мне нужно вызвать функцию, я просто делаю что-то вроде target.SendEmail ().

Все работает нормально, за исключением одного: Я не могу использовать WorkflowInstanceId Workflow , когдакод достигает строки, которая использует это, он генерирует исключение в рабочем процессе: « Это недопустимая операция времени разработки. Операцию можно выполнять только во время выполнения. » Возможно ли внедрить код WorkflowID по коду?Есть ли обходной путь в этой ситуации?Я использую WorkflowInstanceId во многих функциях, и изменение кода рабочего процесса в соответствии с моим тестом не кажется хорошей идеей, поскольку я считаю, что проблема заключается в тесте, а не в рабочем процессе.

1 Ответ

0 голосов
/ 02 ноября 2011

Из вашего вопроса не ясно, используете ли вы WF 3.5 или WF4 с обновлением конечного автомата.Для последнего вы можете использовать Microsoft.Activities.UnitTesting для тестирования рабочих процессов.

Похоже, вы используете WF 3.5.Если это новая разработка, я бы серьезно подумал о переходе на WF4.Microsoft в основном переписала WF, и чем раньше вы переключитесь, тем проще будет ваш путь миграции.

В противном случае есть некоторая информация о тестировании с WF 3.5 на MSDN .

...