我有以下方法。
public string CreateFile(string path, string fileName)
{
string fullPath = path + "ExportedFiles\\";
if (Directory.Exists(fullPath))
{
DirectoryInfo dir = new DirectoryInfo(fullPath);
foreach (FileInfo fi in dir.GetFiles())
{
fi.Delete();
}
}
else
{
Directory.CreateDirectory(fullPath);
}
string filePath = fullPath + fileName;
return filePath;
}
我试图在我的测试用例中使用以下内容。
[Test, Isolated]
public void TestCreateFileIfPathExists()
{
Isolate.WhenCalled(() => System.IO.Directory.Exists("gsgs")).WillReturn(true);
Isolate.WhenCalled(() => testMyClass.CreateFile(@"D:\testFolder\","TestFile")).CallOriginal();
string result = testMyClass.CreateFile(@"D:\testFolder\", "TestFile");
Assert.AreEqual("D:\\testFolder\\ExportedFiles\\TestFile", result);
}
它抛出了以下类型模拟异常。
TypeMock.TypeMockException: * 在记录块中找不到方法调用。请检查:*您是否想要伪造一块土地而不是财产? *您是否试图假冒不受支持的mscorlib类型?
有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
如果你看一下你得到的异常的最后一个问题,
*您是否试图假冒不受支持的mscorlib类型?
在异常中实际上有一个网址,其中包含
请在此处查看支持的类型:http://www.typemock.com/mscorlib-types
当你去那里时,你会注意到:
此列表中缺少的是System.IO.Directory
类,在撰写本文时似乎不支持TypeMock。这是导致错误的行。