1

我有以下方法。

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 类型?

有没有办法解决这个问题?

4

1 回答 1

1

如果你看看你得到的异常的最后一个问题,

* 您是否试图伪造不受支持的 mscorlib 类型?

在异常之后实际上有一个网址,内容如下

在此处查看支持的类型:http ://www.typemock.com/mscorlib-types

当你去那里时,你会注意到:

在此处输入图像描述

值得注意的是,该列表中缺少该类,截至撰写本文时, TypeMockSystem.IO.Directory似乎不支持该类。这是导致您的错误的行。

于 2013-07-02T19:17:02.827 回答