Это не абсолютное правило - если ваш класс живет на периферии, то есть взаимодействует с какой-то внешней подсистемой (в данном случае с файловой системой), то правильный способ проверить это - с реальной подсистемой.
Книга ГСНО рассматривает эти тесты как "интеграционные тесты", потому что эти тесты проверяют, интегрируется ли ваш класс с внешней подсистемой.
Потребители этого класса могут абстрагировать файловую систему через интерфейс, предоставляемый этим классом.
Мой вопрос / кислотный тест для этого решения - какова основная ответственность этого класса?
- , если он обращается к файловой системе, тогда мне нужно написать интеграционные тесты
- если это не так, то используйте насмешку и сконцентрируйтесь на реальной ответственности.например, выступать в качестве хранилища клиентов (которое «использует / делегирует» зависимость для работы с файловой системой).