저는 StateMachineWorkflow를 단위 테스트하고 테스트 프로젝트를 클릭하여 테스트 메소드를 만들고 Add - UnitTest를 만듭니다. 프로젝트 창에서 테스트 할 워크 플로와 그 안에있는 모든 메서드를 선택합니다.UnitTest WorkflowInstanceID 예외
Visual Studio에서 워크 플로의 접근자를 사용하여 테스트 프로젝트에 테스트 참조 폴더를 생성했습니다. 또한 테스트에 필요한 모든 TestMethod()를 생성했습니다. 모든 테스트 메소드는 MyWorkflow_Accessor target = new MyWorkflow_Accessor()를 사용합니다. 함수를 호출해야 할 때 target.SendEmail()과 같은 작업을 수행합니다.
다 한 가지를 제외하고 잘 작동 : 내가 워크 플로 코드는이이 워크 플로에서 예외를 throw 사용하는 라인, "에 도달 할 때 잘못된 설계 시간이의 WorkflowInstanceId을 사용할 수 없습니다 런타임시에만 작업을 수행 할 수 있습니다. " 코드로 WorkflowID를 주입 할 수 있습니까? 이 상황에 대한 해결 방법이 있습니까? 많은 함수에서 WorkflowInstanceId를 사용하고 문제가 워크 플로가 아니라 테스트에 있다고 생각하기 때문에 워크 플로 코드를 내 테스트와 일치하도록 변경하는 것이 좋습니다.
안녕하십니까. 답변 해 주셔서 감사합니다. 나는 WF 3.5를 사용하고있다. Visual Studio 2010으로 작업 할 수 있습니다. 작업중인 프로젝트가 매우 발전했기 때문에 WF 4.0으로 옮길 수 없습니다. 유닛 테스트가 생성하는 접근자를 이용하려했지만 지금까지는 워크 플로우 내부의 함수에 액세스 할 수 있기 때문에 운이 없다.하지만 WorkflowInstanceID와 같은 것은 접근 자에 의해 호출 될 때 작동하지 않는다. – Brazeta
죄송합니다. WF 3.5에 대한 경험이 없습니다. 아마도 다른 사람이 해결책을 제안 할 수 있습니다. – TrueWill
어쨌든 도움을 주셔서 감사합니다 :) – Brazeta