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