2010-03-30 2 views
2

FileSystemWatcher의 Error 이벤트에 첨부 된 private 메서드를 단위 테스트하려고합니다. MSDN은이 이벤트가 "내부 버퍼 오버플로가 발생할 때 발생합니다"라고 말합니다. 나는 버퍼 오버플로를 일으키려고 시도했지만 지금까지 성공하지 못했습니다. FileSystemWatcher의 다양한 속성은 다음과 같습니다.Unit-test FileSystemWatcher.Error 이벤트

fileWatcher.IncludeSubdirectories = false; 
fileWatcher.Filter = "*"; 
fileWatcher.NotifyFilter = (NotifyFilters.FileName | NotifyFilters.LastAccess | NotifyFilters.Size); 

단위 테스트를 위해이 이벤트를 발생시키는 가장 좋은 방법은 무엇입니까?

답변

4

확실하게 버퍼 오버플로를 일으킬 수 있을지 의심 스럽습니다. 시스템 및 구성에 따라 다릅니다. (부하에 의존적 일 수도 있습니다). 대신에 FileSystemWatcher 클래스를 조롱하고 조롱 한 이벤트를 직접 처리하여 핸들러를 테스트 할 것을 제안합니다.

조롱에 대한 새로운 생각이 있으시면 Wikipedia: Mock ObjectList of Mocking frameworks을 참조하십시오.

1

오류 이벤트에 대한 처리기를 기존 코드에 추가했습니다. :). 나는 파일의 처리를 테스트하고 있었고 112 개의 파일을 가지고 있었다. (내가 작업중인 버그에서 알 수 있듯이) 파일을 감시 폴더에 복사 할 때마다 트리거된다. 각 파일은 약 72k이며 TotalCommander를 사용하여 복사합니다. 보통 반복 복사를 사용합니다.

불행히도 당신에게 그것은 모두 sys 구성 &로드 (사이몬이 지적한대로)에 달려 있습니다.

물론 각 작성된 바이트 이후에 결국 여러 개의 작성자를 사용하여 플러시를 시도 할 수는 있지만 아무 것도 보장 할 수는 없습니다.