如何模拟文件的FileInfo信息?

时间:2017-05-17 16:02:40

标签: c# unit-testing

我有一个场景,我需要FileInfo结构中的大部分信息 - 创建时间,上次写入时间,文件大小等。我需要能够干净地获取这些信息,但也能够真正地单元测试没有命中文件系统。

我正在使用System.IO.Abstractions,所以除了这个之外,我的大多数课程都能获得99%的成绩。我不知道如何使用它从我的MockFileSystem对象中获取所需的信息。

public void Initialize(IFileSystem fs, string fullyQualifiedFileName)
{
    string pathOnly = fs.Path.GetDirectoryName(fullyQualifiedFileName);
    string fileName = fs.Path.GetFileName(fullyQualifiedFileName);

    // Here's what I don't know how to separate out and mock
    FileInfo fi = new FileInfo(fullyQualifiedFileName);

    long size = fi.LongLength;
    DateTime lastWrite = fi.LastWriteTime;
    ...
    ...
}

非常感谢该行的任何帮助。

更新:

这与现有问题不完全相同,因为我问我如何使用System.IO.Abstractions进行此操作,而不是如何进行此操作。

对于那些感兴趣的人,我确实找到了实现目标的方法:

FileInfoBase fi = fs.FileInfo.FromFileName(fullFilePath);

如果我使用这一行,我会在TEST和PROD环境中获得相同的信息。

0 个答案:

没有答案