当前,我正在尝试测试对 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;
}
}
}