2008-11-13 10 views
4

대상 디렉토리에 덤프 된 문서를 처리하는 시스템에서 작업하고 있습니다. FileSystemWatcher OnChanged 이벤트를 감지하여 파일을 선택합니다.FileSystemWatcher 이벤트를 어떻게 테스트합니까?

단위 테스트의 일환으로 어떻게 이것을 자동화해야합니까? 변환 결과가 올바른지 비교하기 위해 비교할 입력 파일과 출력 파일을 어떻게 구성해야합니까? 이 명령은 diff 명령을 실행하는 배치 파일에서 더 잘 처리됩니까?

+2

매우 신중하게 - OnChanged에는 몇 가지 단점이 있습니다. 파일이 생성되었지만 완전히 기록되기 전에 파일이 삭제되거나 이동 될 때 실행되지 않을 수 있습니다. –

답변

7

글쎄, 먼저 테스트하고 싶은 것이 정확히 무엇인지 생각해보십시오.

파일이 변경되었음을 감지 한 후 올바르게 처리 되었습니까?

아니면 FileSystemWatcher 클래스가 작동합니까? 그것은 운영 체제가 (당신이 그것을 예상대로 는 기본적으로 을 의미) 올바른 순서로 당신에게 바로 알림을 보내는

또는인가?

처리 만 수행해야하는 경우에는 감시자 클래스를 조롱하거나 IoC 컨테이너를 사용하여 유닛 테스트에 대한 이벤트를 발생시키는 것을 제공 할 수 있습니다.

운영 체제가 올바른 순서로 올바른 이벤트를 제공한다면 파일을 처리하는 코드를 조롱합니다. "예,이 파일이 변경되었다고 들었습니다"라는 상태를 저장하기 만하면됩니다. 그런 다음 단위 테스트는 임시 디렉토리의 파일을 조작합니다.

그러나 단위 테스트가 더 많은 외부 복잡성에 의존 할수록 더 부서지기 쉽습니다.

관련 문제