我正在尝试编写一个涵盖以下行的单元测试
var fileFullName = fileInfo.FullName;
其中 fileInfo 是 FileInfo 的一个实例。
我正在使用假货填充 FileInfo 对象,但我无法为 FullName 属性提供值,因为它是从基类继承的。
对于未继承的 Name 属性,我可以简单地这样做:
ShimFileInfo.AllInstances.NameGet = info => OriginalFullName;
Microsoft 提供的答案是在基类上创建 shim,在本例中为 FileSystemInfo。但如果我试试这个:
ShimFileSystemInfo.AllInstances.FullNameGet = info => OriginalFullName;
它不起作用,因为 FileSystemInfo 是一个无法创建的抽象类,因此无法填充。
在这种特殊情况下,我可以绕过它,因为我可以组合 DirectoryName 和 Name 属性以使其可测试,但我不能只使用我想要的属性似乎很疯狂,因为它恰好来自基础。
有没有人遇到这个问题并设法解决它?