Юнит-тест Событие FileSystemWatcher.Error - PullRequest
2 голосов
/ 30 марта 2010

Я пытаюсь выполнить модульное тестирование закрытого метода, который я прикрепил к событию Error моего FileSystemWatcher. MSDN говорит, что это событие «происходит, когда переполнен внутренний буфер». Я пытался вызвать переполнение буфера, но пока не удалось. Различные свойства FileSystemWatcher:

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

Как лучше всего поднять это событие для юнит-тестирования?

Ответы [ 2 ]

4 голосов
/ 30 марта 2010

Я сомневаюсь, что вы сможете надежно вызвать переполнение буфера. Это будет зависеть от системы и конфигурации. (Это может даже зависеть от нагрузки). Я бы предложил вместо этого насмехаться над классом FileSystemWatcher и самому запускать смоделированное событие, чтобы проверить свой обработчик.

См. Википедия: Mock Object и этот Список фреймворков Mocking для получения дополнительной информации, если вы новичок в идее насмешки.

1 голос
/ 09 апреля 2010

Только что добавил обработчик для события Error в существующий код :). Я тестировал обработку файлов, и со 112 файлами (как я понял из ошибки, над которой я работаю) это срабатывает каждый раз, когда я копирую файлы в просматриваемую папку. Каждый файл имеет размер около 72 КБ, и я копирую их, используя TotalCommander, который, как я полагаю, делает обычную итеративную копию.

К сожалению, для вас все зависит от конфигурации и загрузки sys (как указал Саймон).

Конечно, вы можете попытаться сбрасывать после каждого записанного байта число авторов, но ничто не может гарантировать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...