Microsoft Fakes无法生成存根

时间:2015-07-28 09:51:47

标签: c# microsoft-fakes

我有一个包含以下界面的类库:

public interface IFoo
{
    void Foo(Claim claim);
}

我有一个单元测试项目,测试结果如下:

[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void TestMethod1()
    {
        var stubIFoo = new ClassLibrary1.Fakes.StubIFoo();
    }
}

如果两个项目都针对.NET Framework 4.6,那么一切正常。但是,如果两个项目都针对.NET Framework 4.5.1,我会收到以下警告:

  

无法为ClassLibrary1.IFoo生成存根:方法System.Void   ClassLibrary1.IFoo.Foo(System.Security.Claims.Claim声明)   unstubbable:方法是抽象的,不能被存根,类型   System.Security.Claims.Claim在目标框架中不可用   版本

编译错误,因为StubIFoo不再生成:

  

命名空间中不存在类型或命名空间名称“StubIFoo”   'ClassLibrary1.Fakes'(你错过了一个程序集引用吗?)

这是ClassLibrary1.fakes文件的内容:

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="true" Verbosity="Verbose">
  <Assembly Name="ClassLibrary1"/>
  <ShimGeneration>
    <Remove TypeName="IFoo"/>
    <Remove TypeName="IBar"/>
  </ShimGeneration>
</Fakes>

您是否有任何关于如何在两个项目都定位的情况下完成这项工作的想法 .NET Framework 4.5.1?

0 个答案:

没有答案