Мое обычное решение этой проблемы состоит в том, что я реорганизую свою программу, чтобы открыть файл в вызывающем методе, а затем передать поток вместо передачи имени файла и открытия файла там.
Для тестирования это позволяет мнепередать MemoryStream, чтобы я мог написать свой модульный тест вообще без использования файловой системы.Иногда даже проще проверить, правильно ли записаны данные, и это определенно быстрее, особенно для большого количества тестов.Вы просто должны помнить, что необходимо сбрасывать MemoryStream после записи, поскольку .NET не всегда делает это автоматически.
Пример из одной из моих программ:
public TestSaveAndLoad()
{
[... create data to save ...]
using (MemoryStream targetStream = new MemoryStream())
{
target.Save(targetStream);
targetStream.Flush();
targetStream.Seek(0, ...);
target.Load(targetStream);
}
[... assert that the loaded data equals the saved data ...]
}