2011-12-22 1 views
0

제목이 있습니다. UnitTest를 사용하여 어떻게 테스트 할 수 있습니까?타이머가있는 다중 스레드 Windows 서비스를 테스트하는 방법은 무엇입니까?

미리 감사드립니다.

+1

귀하의 질문은 더 이상 도움이되지 않습니다. 그때 우리는 당신에게 해결책을 말할 수 없습니다 – prema

+0

나는 windws 서비스가 있습니다. Onstart에서는 2 개의 스레드를 실행합니다. 각 스레드는 타이머 기능을 생성합니다. 그렇다면이 서비스를 어떻게 테스트 할 수 있습니까? – user970742

답변

1

일반적으로 : 멀티 스레드 코드의 신뢰할 수있는 단위 테스트는 매우 어렵습니다. 그 이유는 스레드가 실행되는시기를 제어 할 수 없기 때문입니다.

간단한 해결책은 요청을 시작하는 것입니다 (또는 당신의 스레드 프로세스입니다 무엇이든) 당신의 단위 테스트에서 잠시 동안 다음과 Thread.Sleep()하고 스레드가 작업을 할 예정있어 바랍니다. 그런 다음 모든 것이 제대로 처리되었는지 확인하십시오. 이것은 주로 작동하지만 일정 및 타이밍으로 인해 때때로 실패합니다 - 특히 VM에서 단위 테스트를 실행할 때. 스레드의 이벤트 나 상태를 설정하여 특정 단계를 통과했음을 나타낼 수도 있지만 약간 엉망이 될 수 있습니다.

그러나 정확히 무엇을하고 있는지 구체적으로 설명하면 더 효과적인 몇 가지 해결 방법이있을 수 있습니다.

관련 문제