4
我試圖測試下面的代碼:如何用JustMock模擬構造函數?
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(),但不知道這是否適用於我自己的情況。
在此先感謝。
排號的'new'表達式返回值是我們的名單上相當高的特點,將要,但它不會傷害,如果你在JustMock投贊成票反饋網站:http://feedback.telerik.com/Project/105/Feedback/Details/126623-arrange-return-value-of-new-expressions –