Unit Test. Кто использует?
Раз есть доступ к файловой системе вы сразу будете считать тест интеграционным?
Не только к файловой системе, а вообще к любому внешнему элементу.
Можно же перед вызовом метода создать временный файл в системном темпе, а после теста стереть.
можно конечно, но юнит-тест должен быть быстрым... в моем примере проверка идет на 1000 байт и такой файл можно быстро создать. а если это не 1000 байт, а скажем, 400Мб? успеешь на пенсию выйти пока файл этот создашь :) я уж не говорю о том, что проблема может быть в случае, если файл где-нибудь в сети, а на локальной машине все работает. будешь в тесте не только файл создавать, но и подключение к сети? :)
а если тест будет исполняться много
времени, то в лучшем случае тест этот будет выполняться раз в сутки. а в худшем случае тест этот вообще выключат из плей-листа, т.к. работать он будет от раза к разу (например из-за нехватки места на диске)
так что таким тестом крайне сложно, а зачастую просто невозможно, покрыть (смоделировать) действительно проблемные ситуации.
например, такой подход не даст тебе возможность протестировать сценарий, при котором будет сгенерировано исключение. а юнит-тестом такой сценарий легко покрывается.