我正在尝试测试以下代码:
public ICollection<RawCatalog> ReadCatalog(string familyName)
{
// Root folder for the family
string familyFolder = this.GetFamilyFolder(familyName);
DirectoryInfo familyFolderInfo = new DirectoryInfo(familyFolder);
foreach (DirectoryInfo subFamilyFolderInfo in familyFolderInfo.EnumerateDirectories())
{
// Do stuff
}
}
我希望这会起作用:
// Arrange
DirectoryInfo fakeDirectoryInfo = Mock.Create<DirectoryInfo>(Constructor.Mocked);
Mock.Arrange(() => new DirectoryInfo(@"testRoot\DrivesData\TestFamily")).Returns(fakeDirectoryInfo);
Mock.Arrange(() => directoryInfo.EnumerateDirectories()).Returns(new DirectoryInfo[] { });
但是似乎没有在构造函数中返回 fakeDirectoryInfo 。我应该怎么做测试?(如果可能的话,我不应该更改源代码,因为它是工作代码)。
我读过一些关于未来模拟和使用 DoNothing() 但不确定这是否适用于我自己的情况。
提前致谢。