То, что у вас здесь, не является модульным тестом.Модульный тест проверяет одну единицу кода (хотя она может быть большой) и не зависит от внешних факторов окружающей среды, таких как файлы или сетевые подключения.
Поскольку вы зависите от файла, то, что у вас естьэто интеграционный тест.Вы проверяете, безопасно ли ваш код интегрируется с чем-то, находящимся вне контроля кода, в данном случае с файловой системой.
Если это действительно интеграционный тест, вы должны изменить тест так, чтобы вы 'повторное тестирование того, что вы на самом деле хотите протестировать.
Если вы все еще рассматриваете это как модульное тестирование, например, пытаетесь проверить синтаксический анализ CSV, то я бы реорганизовал код, чтобы вы могли имитировать/ stub / подделать фактическое чтение содержимого файла CSV.Таким образом, вы можете легче предоставлять тестовые данные в анализатор CSV и не зависеть от каких-либо внешних файлов.
Например, вы считаете, что:
- Пакет антивируса может недать вам немедленный доступ к файлу
- Типичный инструмент для программиста, такой как TortoiseSvn, интегрирует накладки оболочки в Проводник, которые иногда держатся за файлы слишком долго и не всегда дают доступ к файлу программе (выудалил файл и попытался перезаписать его новым? конечно, просто позвольте мне сначала пройти удаление, но есть программа, держащая файл, так что это может занять некоторое время ...)
- Возможно, файл не существует (почему это так?)
- Возможно, у вас нет доступа для чтения к пути
- Возможно, у вас неправильное содержимое файла (из-за более раннего сеанса отладки)?)
Как только вы начнете привлекать внешние системы, такие как файловые системы, сетевые подключения и т. Д., Есть так много вещей, которые могут пойти не так, как надо.у вас есть в основном хрупкий тест.
Мой совет: выясните, что вы пытаетесь проверить (файловая система?Анализатор CSV?) И удалите зависимости, которые противоречат этой цели.