我有一个包含以下界面的类库:
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?