私は StateMachineWorkflow の単体テストを行っており、テスト プロジェクトをクリックしてテスト メソッドを作成し、Add - UnitTest を作成しています。プロジェクト ウィンドウで、テストするワークフローとその中のすべてのメソッドを選択します。
Visual Studio は、ワークフローへのアクセサを使用してテスト プロジェクトに Test Reference フォルダーを生成しました。また、テストに必要なすべての TestMethod() も生成されました。すべてのテスト メソッドは、MyWorkflow_Accessor ターゲット = new MyWorkflow_Accessor() を使用します。関数を呼び出す必要があるときは、target.SendEmail() のようなことをするだけです。
1 つのことを除いて、すべて正常に動作します。Workflow の WorkflowInstanceId を使用できません。コードがこれを使用する行に到達すると、ワークフローで例外がスローされます。「これは無効な設計時の操作です。実行できるのは、コードでWorkflowIDを注入することは可能ですか? この状況の回避策はありますか? 多くの関数で WorkflowInstanceId を使用していますが、テストに合わせてワークフロー コードを変更することはお勧めできません。なぜなら、問題はワークフローではなくテストにあると考えているからです。