Moq Setup密封类的不可重写方法

时间:2019-08-08 12:19:35

标签: c# mocking moq

当前,我正在尝试测试对 System.IO.DirectoryInfo 有依赖性的方法(使用它的 GetFiles()方法),因此我需要对此进行模拟类具有稳定的单元测试。

System.IO.DirectoryInfo 是一个密封的类-这是我可以使用包装器类解决的问题,但是 GetFiles()方法不可覆盖,因此我无法在其上调用 Mock.Setup()
在提到的类上也没有可用的接口。

我还有其他免费的API可以用来模拟这种依赖性吗?
我是否应该使用其他东西代替 System.IO.DirectoryInfo

修改:
有一个受测系统的简化版本:

public class AssemblyFinder
{
    string _pattern = "somePattern";

    public IEnumerable<FileInfo> FindL3Assemblies(DirectoryInfo directory)
    {
        FileInfo[] files = directory.GetFiles();

        foreach(FileInfo currentFile in files)
        {
            if (Regex.IsMatch(currentFile.Name, _pattern)) yield return currentFile;
        }
    }
}

0 个答案:

没有答案
相关问题