Модульный тест, если метод удаляет исходный файл данных - PullRequest
1 голос
/ 19 марта 2011

Супер нуб с юнит-тестированием ...

У меня есть метод, который обрабатывает, а затем удаляет входной файл.Как я могу выполнить модульное тестирование, если файл действительно удаляется?Я понимаю, что делать ввод-вывод файлов во время модульного теста - плохая практика.

Спасибо!

Ответы [ 2 ]

1 голос
/ 19 марта 2011

Это не абсолютное правило - если ваш класс живет на периферии, то есть взаимодействует с какой-то внешней подсистемой (в данном случае с файловой системой), то правильный способ проверить это - с реальной подсистемой.

Книга ГСНО рассматривает эти тесты как "интеграционные тесты", потому что эти тесты проверяют, интегрируется ли ваш класс с внешней подсистемой.

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

Мой вопрос / кислотный тест для этого решения - какова основная ответственность этого класса?

  • , если он обращается к файловой системе, тогда мне нужно написать интеграционные тесты
  • если это не так, то используйте насмешку и сконцентрируйтесь на реальной ответственности.например, выступать в качестве хранилища клиентов (которое «использует / делегирует» зависимость для работы с файловой системой).
0 голосов
/ 19 марта 2011

У метода есть метод System.IO.File.Copy () исходного файла, а затем используйте копию для проведения тестирования.Надеюсь, ваш код настроен так, чтобы указывать, какой файл обрабатывать.

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