【发布时间】:2011-11-02 11:52:09
【问题描述】:
我正在对 StateMachineWorkflow 进行单元测试,我通过单击我的测试项目来创建我的测试方法,然后我创建了 Add - UnitTest。在项目窗口中,我选择要测试的工作流以及其中的所有方法。
Visual Studio 在我的测试项目中生成了一个测试引用文件夹,其中包含工作流的访问器。它还生成了测试所需的所有 TestMethod()。所有测试方法都使用 MyWorkflow_Accessor 目标 = new MyWorkflow_Accessor()。当我需要调用一个函数时,我只需执行 target.SendEmail() 之类的操作。
一切正常,除了一件事:我不能使用工作流的 WorkflowInstanceId,当代码到达使用它的行时,它会在工作流中引发异常,“这是无效的设计时操作。您只能在运行时执行该操作。" 是否可以通过代码注入 WorkflowID?这种情况有什么解决方法吗?我在很多函数中都使用了 WorkflowInstanceId,并且更改 Workflow 代码以匹配我的测试似乎不是一个好主意,因为我相信问题出在测试中,而不是在工作流中。
【问题讨论】:
标签: unit-testing workflow-foundation accessor instanceid workflow-foundation-3