次のコードをテストしようとしています。
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() の使用について読んだことがありますが、これが自分の状況に当てはまるかどうかはわかりません。
前もって感謝します。