Файловая система является отличным примером того, как TDD может привести вас к лучшему, более гибкому дизайну. Часто при взаимодействии с файловой системой вы можете иметь дело с чтением и записью файлов, используя Streams или TextWriters вместо реальных файлов.
Это все абстрактные типы, поэтому их легко высмеивать.
Теперь у вас есть более гибкий API, потому что он не тесно связан с файловой системой, но все еще поддерживает файловые операции.