为什么Microsoft Fakes没有创建ShimFtpWebRequest?

时间:2014-11-13 16:48:49

标签: c# unit-testing microsoft-fakes

执行以下步骤:

  • 创建默认WCF服务库项目
  • 创建默认的单元测试项目并引用服务库
  • 在单元测试项目中为System创建Fakes程序集

我希望System.4.0.0.0.Fakes中有一个类型ShimFtpWebRequest。那没有。在System.Net上将Diagnostics属性设置为true.Fakes会发出大量警告消息,主要是关于无法生成存根,包括FtpWebRequest - 因为这些类是密封的,是枚举, 等等。我很好,我不关心存根,我想要的是垫片。没有消息说它无法生成 shim 类型。

This question表明它有一些场景,因为OP使用它,但他没有提到任何关于他如何生成它的事情,因为它不是问题的主题。 / p>

Fakes为什么不生成类型ShimFtpWebRequest

1 个答案:

答案 0 :(得分:3)

您需要编辑生成的System.fakes文件,以告诉它生成类。我相信它会自动忽略密封类。

我在测试时遇到了与你相同的问题,但后来我手动告诉它生成它。

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
    <Assembly Name="System" Version="4.0.0.0"/>
    <ShimGeneration>
        <Add FullName="System.Net.FtpWebRequest"/>
    </ShimGeneration>
</Fakes>